Commit 18bdecdb authored by Fang Yuedong's avatar Fang Yuedong
Browse files

encapsulate instrumental data

parent 72f88213
......@@ -10,10 +10,16 @@ import galsim
import os
try:
import importlib.resources as pkg_resources
except ImportError:
# Try backported to PY<37 'importlib_resources'
import importlib_resources as pkg_resources
###calculate sky map by sky SED
def calculateSkyMap_split_g(skyMap=None, blueLimit=4200, redLimit=6500, skyfn='param/skybackground/sky_emiss_hubble_50_50_A.dat', conf=[''], pixelSize=0.074, isAlongY=0,
def calculateSkyMap_split_g(skyMap=None, blueLimit=4200, redLimit=6500, skyfn='sky_emiss_hubble_50_50_A.dat', conf=[''], pixelSize=0.074, isAlongY=0,
split_pos=3685):
# skyMap = np.ones([yLen, xLen], dtype='float32')
#
......@@ -36,7 +42,9 @@ def calculateSkyMap_split_g(skyMap=None, blueLimit=4200, redLimit=6500, skyfn='p
fImg = galsim.Image(fimg)
# skyfn = os.path.join(SLSSIM_PATH, skyfn)
skySpec = np.loadtxt(skyfn)
with pkg_resources.path('ObservationSim.MockObject.data', skyfn) as data_path:
skySpec = np.loadtxt(data_path)
# skySpec = np.loadtxt(skyfn)
spec = Table(np.array([skySpec[:, 0], skySpec[:, 1]]).T, names=('WAVELENGTH', 'FLUX'))
if isAlongY == 0:
......@@ -133,7 +141,7 @@ def calculateSkyMap_split_g(skyMap=None, blueLimit=4200, redLimit=6500, skyfn='p
return fimg
def calculateSkyMap(xLen=9232, yLen=9126, blueLimit=4200, redLimit=6500,
skyfn='param/skybackground/sky_emiss_hubble_50_50_A.dat', conf='', pixelSize=0.074, isAlongY=0):
skyfn='sky_emiss_hubble_50_50_A.dat', conf='', pixelSize=0.074, isAlongY=0):
skyMap = np.ones([yLen, xLen], dtype='float32')
if isAlongY == 1:
......@@ -146,7 +154,10 @@ def calculateSkyMap(xLen=9232, yLen=9126, blueLimit=4200, redLimit=6500,
fimg = np.zeros_like(skyMap)
fImg = galsim.Image(fimg)
skySpec = np.loadtxt(skyfn)
with pkg_resources.path('ObservationSim.MockObject.data', skyfn) as data_path:
skySpec = np.loadtxt(data_path)
# skySpec = np.loadtxt(skyfn)
spec = Table(np.array([skySpec[:, 0], skySpec[:, 1]]).T, names=('WAVELENGTH', 'FLUX'))
sdp = SpecDisperser(orig_img=skyImg, xcenter=skyImg.center.x, ycenter=skyImg.center.y, origin=[1, 1],
......
# huble skybackground mean level, earthshine + zodical light
#wavelength(A) flux(photon/s/A/arcsec^2/m^2)
1000.0 6.062014541418706e-09
1005.0 1.1324002246856417e-08
1010.0 1.6638046446152143e-08
1015.0 2.2004147139305884e-08
1020.0 2.7422304326317643e-08
1025.0 3.289251800718741e-08
1030.0 3.8414788181915204e-08
1035.0 4.398911485050101e-08
1040.0 4.961549801294483e-08
1045.0 5.5293937669246676e-08
1050.0 6.102443381940653e-08
1055.0 6.68069864634244e-08
1060.0 7.26415956013003e-08
1065.0 7.852826123303418e-08
1070.0 8.446698335862612e-08
1075.0 9.045776197807603e-08
1080.0 9.650059709138398e-08
1085.0 1.0259548869854993e-07
1090.0 1.0874243679957394e-07
1095.0 1.1494144139445595e-07
1100.0 1.2119250248319594e-07
1105.0 1.1621516866148182e-07
1110.0 1.1118780580055496e-07
1115.0 1.0611041390041543e-07
1120.0 1.009829929610632e-07
1125.0 9.580554298249834e-08
1130.0 9.057806396472076e-08
1135.0 8.530055590773051e-08
1140.0 7.997301881152757e-08
1145.0 7.459545267611195e-08
1150.0 6.916785750148364e-08
1155.0 6.369023328764268e-08
1160.0 5.8162580034589e-08
1165.0 5.2584897742322656e-08
1170.0 4.695718641084362e-08
1175.0 4.127944604015191e-08
1180.0 3.5551676630247506e-08
1185.0 2.977387818113043e-08
1190.0 2.394605069280067e-08
1195.0 1.8068194165258228e-08
1200.0 1.2140308598503108e-08
1205.0 1.1911173524700924e-08
1210.0 1.1679717125645938e-08
1215.0 1.144593940133815e-08
1220.0 1.1209840351777559e-08
1225.0 1.0971419976964167e-08
1230.0 1.0730678276897972e-08
1235.0 1.0487615251578977e-08
1240.0 1.0242230901007181e-08
1245.0 9.994525225182583e-09
1250.0 9.744498224105179e-09
1255.0 9.49214989777498e-09
1260.0 9.237480246191975e-09
1265.0 8.980489269356168e-09
1270.0 8.721176967267561e-09
1275.0 8.45954333992615e-09
1280.0 8.19558838733194e-09
1285.0 7.929312109484926e-09
1290.0 7.660714506385111e-09
1295.0 7.389795578032495e-09
1300.0 7.116555324427076e-09
1305.0 6.840993745568856e-09
1310.0 6.5631108414578336e-09
1315.0 6.282906612094011e-09
1320.0 6.000381057477383e-09
1325.0 5.715534177607957e-09
1330.0 5.428365972485726e-09
1335.0 5.138876442110697e-09
1340.0 4.847065586482863e-09
1345.0 4.552933405602229e-09
1350.0 4.256479899468791e-09
1355.0 3.9577050680825545e-09
1360.0 3.656608911443514e-09
1365.0 3.3531914295516723e-09
1370.0 3.0474526224070294e-09
1375.0 2.7393924900095834e-09
1380.0 2.4290110323593374e-09
1385.0 2.1163082494562875e-09
1390.0 1.801284141300438e-09
1395.0 1.483938707891785e-09
1400.0 1.1642719492303297e-09
1405.0 1.302827183295651e-09
1410.0 1.442338980492367e-09
1415.0 1.5828073408204775e-09
1420.0 1.7242322642799823e-09
1425.0 1.866613750870882e-09
1430.0 2.009951800593176e-09
1435.0 2.154246413446864e-09
1440.0 2.2994975894319473e-09
1445.0 2.445705328548425e-09
1450.0 2.5928696307962963e-09
1455.0 2.7409904961755633e-09
1460.0 2.890067924686224e-09
1465.0 3.040101916328279e-09
1470.0 3.1910924711017297e-09
1475.0 3.343039589006575e-09
1480.0 3.495943270042813e-09
1485.0 3.649803514210447e-09
1490.0 3.804620321509474e-09
1495.0 3.960393691939896e-09
1500.0 4.117123625501715e-09
1505.0 8.93940767390179e-09
1510.0 1.3793642289099087e-08
1515.0 1.8679827471093606e-08
1520.0 2.3597963219885345e-08
1525.0 2.8548049535474305e-08
1530.0 3.353008641786049e-08
1535.0 3.8544073867043887e-08
1540.0 4.359001188302451e-08
1545.0 4.866790046580235e-08
1550.0 5.3777739615377417e-08
1555.0 5.8919529331749705e-08
1560.0 6.409326961491921e-08
1565.0 6.929896046488596e-08
1570.0 7.453660188164988e-08
1575.0 7.980619386521105e-08
1580.0 8.510773641556946e-08
1585.0 9.044122953272506e-08
1590.0 9.58066732166779e-08
1595.0 1.0120406746742795e-07
1600.0 1.0663341228497521e-07
1605.0 2.656467766234215e-07
1610.0 4.2564880223865926e-07
1615.0 5.866394891306888e-07
1620.0 7.486188372995099e-07
1625.0 9.115868467451226e-07
1630.0 1.075543517467527e-06
1635.0 1.2404888494667231e-06
1640.0 1.4064228427427105e-06
1645.0 1.5733454972954894e-06
1650.0 1.7412568131250607e-06
1655.0 1.9101567902314226e-06
1660.0 2.080045428614577e-06
1665.0 2.250922728274523e-06
1670.0 2.4227886892112605e-06
1675.0 2.595643311424789e-06
1680.0 2.76948659491511e-06
1685.0 2.9443185396822223e-06
1690.0 3.120139145726126e-06
1695.0 3.2969484130468213e-06
1700.0 3.474746341644308e-06
1705.0 3.6828985428956737e-06
1710.0 3.892211637748622e-06
1715.0 4.102685626203155e-06
1720.0 4.3143205082592715e-06
1725.0 4.527116283916972e-06
1730.0 4.741072953176257e-06
1735.0 4.956190516037125e-06
1740.0 5.172468972499578e-06
1745.0 5.389908322563615e-06
1750.0 5.608508566229232e-06
1755.0 5.828269703496438e-06
1760.0 6.0491917343652265e-06
1765.0 6.271274658835598e-06
1770.0 6.494518476907555e-06
1775.0 6.7189231885810926e-06
1780.0 6.944488793856216e-06
1785.0 7.171215292732926e-06
1790.0 7.399102685211216e-06
1795.0 7.6281509712910916e-06
1800.0 7.85836015097255e-06
1805.0 8.07091933107771e-06
1810.0 8.284535189309783e-06
1815.0 8.49920772566877e-06
1820.0 8.714936940154672e-06
1825.0 8.931722832767487e-06
1830.0 9.149565403507218e-06
1835.0 9.368464652373863e-06
1840.0 9.588420579367423e-06
1845.0 9.809433184487896e-06
1850.0 1.0031502467735282e-05
1855.0 1.0254628429109583e-05
1860.0 1.0478811068610799e-05
1865.0 1.0704050386238928e-05
1870.0 1.0930346381993973e-05
1875.0 1.115769905587593e-05
1880.0 1.1386108407884804e-05
1885.0 1.1615574438020591e-05
1890.0 1.184609714628329e-05
1895.0 1.2077676532672904e-05
1900.0 1.2310312597189432e-05
1905.0 1.2712087023747278e-05
1910.0 1.3115800446982773e-05
1915.0 1.3521452866895907e-05
1920.0 1.3929044283486693e-05
1925.0 1.433857469675512e-05
1930.0 1.4750044106701198e-05
1935.0 1.5163452513324916e-05
1940.0 1.5578799916626283e-05
1945.0 1.59960863166053e-05
1950.0 1.6415311713261957e-05
1955.0 1.6836476106596262e-05
1960.0 1.7259579496608216e-05
1965.0 1.7684621883297813e-05
1970.0 1.8111603266665053e-05
1975.0 1.8540523646709943e-05
1980.0 1.8971383023432478e-05
1985.0 1.940418139683266e-05
1990.0 1.9838918766910488e-05
1995.0 2.027559513366596e-05
2000.0 2.071421049709908e-05
2005.0 2.327957785004678e-05
2010.0 2.5857481770708722e-05
2015.0 2.8447922259084894e-05
2020.0 3.105089931517531e-05
2025.0 3.3666412938979966e-05
2030.0 3.6294463130498865e-05
2035.0 3.893504988973199e-05
2040.0 4.158817321667937e-05
2045.0 4.425383311134099e-05
2050.0 4.6932029573716845e-05
2055.0 4.9622762603806926e-05
2060.0 5.232603220161126e-05
2065.0 5.504183836712983e-05
2070.0 5.7770181100362636e-05
2075.0 6.051106040130968e-05
2080.0 6.326447626997097e-05
2085.0 6.60304287063465e-05
2090.0 6.880891771043627e-05
2095.0 7.159994328224026e-05
2100.0 7.440350542175852e-05
2105.0 7.745262372366961e-05
2110.0 8.051538557474235e-05
2115.0 8.359179097497673e-05
2120.0 8.668183992437276e-05
2125.0 8.978553242293042e-05
2130.0 9.290286847064974e-05
2135.0 9.60338480675307e-05
2140.0 9.917847121357329e-05
2145.0 0.00010233673790877756
2150.0 0.00010550864815314345
2155.0 0.00010869420194667097
2160.0 0.00011189339928936014
2165.0 0.00011510624018121096
2170.0 0.00011833272462222341
2175.0 0.00012157285261239751
2180.0 0.00012482662415173328
2185.0 0.00012809403924023065
2190.0 0.0001313750978778897
2195.0 0.00013466980006471039
2200.0 0.0001379781458006927
2205.0 0.00013697162005895603
2210.0 0.00013595910741274437
2215.0 0.00013494060786205768
2220.0 0.00013391612140689602
2225.0 0.00013288564804725934
2230.0 0.0001318491877831476
2235.0 0.00013080674061456097
2240.0 0.00012975830654149924
2245.0 0.00012870388556396258
2250.0 0.00012764347768195084
2255.0 0.00012657708289546412
2260.0 0.00012550470120450242
2265.0 0.00012442633260906571
2270.0 0.000123341977109154
2275.0 0.0001222516347047673
2280.0 0.00012115530539590555
2285.0 0.00012005298918256885
2290.0 0.00011894468606475708
2295.0 0.00011783039604247039
2300.0 0.00011671011911570866
2305.0 0.00011709491260915991
2310.0 0.00011748027476136693
2315.0 0.00011786620557232971
2320.0 0.00011825270504204823
2325.0 0.00011863977317052247
2330.0 0.00011902740995775252
2335.0 0.00011941561540373824
2340.0 0.00011980438950847977
2345.0 0.00012019373227197702
2350.0 0.00012058364369422999
2355.0 0.00012097412377523875
2360.0 0.00012136517251500323
2365.0 0.0001217567899135235
2370.0 0.00012214897597079947
2375.0 0.0001225417306868312
2380.0 0.00012293505406161867
2385.0 0.00012332894609516193
2390.0 0.0001237234067874609
2395.0 0.00012411843613851565
2400.0 0.0001245140341483261
2405.0 0.00012714023131933059
2410.0 0.0001297762696251924
2415.0 0.00013242214906591162
2420.0 0.00013507786964148816
2425.0 0.00013774343135192208
2430.0 0.00014041883419721335
2435.0 0.000143104078177362
2440.0 0.000145799163292368
2445.0 0.00014850408954223136
2450.0 0.00015121885692695206
2455.0 0.00015394346544653017
2460.0 0.00015667791510096563
2465.0 0.00015942220589025842
2470.0 0.0001621763378144086
2475.0 0.00016494031087341615
2480.0 0.000167714125067281
2485.0 0.00017049778039600328
2490.0 0.00017329127685958287
2495.0 0.00017609461445801988
2500.0 0.00017890779319131418
2505.0 0.00018094365741134615
2510.0 0.00018298622042831872
2515.0 0.00018503548224223207
2520.0 0.0001870914428530861
2525.0 0.0001891541022608809
2530.0 0.00019122346046561634
2535.0 0.00019329951746729256
2540.0 0.0001953822732659095
2545.0 0.00019747172786146707
2550.0 0.00019956788125396544
2555.0 0.00020167073344340452
2560.0 0.0002037802844297843
2565.0 0.00020589653421310478
2570.0 0.000208019482793366
2575.0 0.00021014913017056787
2580.0 0.00021228547634471055
2585.0 0.00021442852131579388
2590.0 0.00021657826508381795
2595.0 0.00021873470764878275
2600.0 0.00022089784901068826
2605.0 0.0002479953230516333
2610.0 0.00027519518738234857
2615.0 0.0003024974420028341
2620.0 0.00032990208691309003
2625.0 0.00035740912211311616
2630.0 0.00038501854760291255
2635.0 0.0004127303633824792
2640.0 0.00044054456945181607
2645.0 0.0004684611658109233
2650.0 0.0004964801524598007
2655.0 0.0005246015293984484
2660.0 0.0005528252966268666
2665.0 0.0005811514541450546
2670.0 0.0006095800019530132
2675.0 0.000638110940050742
2680.0 0.0006667442684382412
2685.0 0.0006954799871155105
2690.0 0.0007243180960825502
2695.0 0.0007532585953393599
2700.0 0.0007823014848859402
2705.0 0.0007556728768021461
2710.0 0.0007289404708827242
2715.0 0.0007021042671276747
2720.0 0.0006751642655369976
2725.0 0.0006481204661106927
2730.0 0.0006209728688487601
2735.0 0.0005937214737511999
2740.0 0.000566366280818012
2745.0 0.0005389072900491964
2750.0 0.0005113445014447532
2755.0 0.00048367791500468233
2760.0 0.0004559075307289837
2765.0 0.0004280333486176574
2770.0 0.00040005536867070347
2775.0 0.0003719735908881218
2780.0 0.00034378801526991243
2785.0 0.00031549864181607554
2790.0 0.0002871054705266108
2795.0 0.0002586085014015184
2800.0 0.00023000773444079842
2805.0 0.0003032463272527141
2810.0 0.0003767445559459658
2815.0 0.00045050242052055314
2820.0 0.0005245199209764765
2825.0 0.0005987970573137354
2830.0 0.0006733338295323304
2835.0 0.0007481302376322609
2840.0 0.0008231862816135275
2845.0 0.00089850196147613
2850.0 0.0009740772772200681
2855.0 0.0010499122288453423
2860.0 0.0011260068163519523
2865.0 0.0012023610397398977
2870.0 0.0012789748990091792
2875.0 0.0013558483941597966
2880.0 0.0014329815251917497
2885.0 0.0015103742921050388
2890.0 0.0015880266948996636
2895.0 0.0016659387335756243
2900.0 0.001744110408132921
2905.0 0.0017136314040109434
2910.0 0.001683037129351848
2915.0 0.0016523275841556356
2920.0 0.001621502768422306
2925.0 0.0015905626821518595
2930.0 0.0015595073253442955
2935.0 0.0015283366979996146
2940.0 0.0014970508001178162
2945.0 0.0014656496316989007
2950.0 0.0014341331927428679
2955.0 0.001402501483249718
2960.0 0.0013707545032194506
2965.0 0.001338892252652066
2970.0 0.0013069147315475647
2975.0 0.0012748219399059458
2980.0 0.0012426138777272093
2985.0 0.001210290545011356
2990.0 0.0011778519417583856
2995.0 0.0011452980679682978
3000.0 0.001112628923641093
3005.0 0.0011300853582804423
3010.0 0.0011475937132296088
3015.0 0.001165153988488592
3020.0 0.0011827661840573915
3025.0 0.0012004302999360085
3030.0 0.001218146336124442
3035.0 0.0012359142926226924
3040.0 0.0012537341694307594
3045.0 0.001271605966548643
3050.0 0.001289529683976344
3055.0 0.0013075053217138615
3060.0 0.0013255328797611957
3065.0 0.001343612358118347
3070.0 0.0013617437567853149
3075.0 0.0013799270757620995
3080.0 0.001398162315048701
3085.0 0.001416449474645119
3090.0 0.0014347885545513543
3095.0 0.0014531795547674065
3100.0 0.0014716224752932747
3105.0 0.0015154755320681617
3110.0 0.0015594621781252946
3115.0 0.0016035824134646728
3120.0 0.0016478362380862974
3125.0 0.0016922236519901674
3130.0 0.0017367446551762832
3135.0 0.001781399247644645
3140.0 0.0018261874293952524
3145.0 0.0018711092004281052
3150.0 0.0019161645607432046
3155.0 0.001961353510340549
3160.0 0.00200667604922014
3165.0 0.002052132177381976
3170.0 0.002097721894826058
3175.0 0.0021434452015523862
3180.0 0.00218930209756096
3185.0 0.0022352925828517797
3190.0 0.0022814166574248447
3195.0 0.002327674321280156
3200.0 0.002374065574417713
3205.0 0.002396407454528067
3210.0 0.0024188074700601065
3215.0 0.0024412656210138317
3220.0 0.002463781907389243
3225.0 0.002486356329186341
3230.0 0.002508988886405124
3235.0 0.0025316795790455934
3240.0 0.002554428407107748
3245.0 0.002577235370591589
3250.0 0.0026001004694971154
3255.0 0.0026230237038243277
3260.0 0.0026460050735732264
3265.0 0.002669044578743811
3270.0 0.002692142219336081
3275.0 0.002715297995350038
3280.0 0.0027385119067856794
3285.0 0.0027617839536430077
3290.0 0.002785114135922021
3295.0 0.002808502453622721
3300.0 0.0028319489067451064
3305.0 0.002855453495289178
3310.0 0.0028790162192549357
3315.0 0.0029026370786423786
3320.0 0.002926316073451508
3325.0 0.0029500532036823225
3330.0 0.0029738484693348235
3335.0 0.0029977018704090107
3340.0 0.0030216134069048833
3345.0 0.0030455830788224418
3350.0 0.003069610886161686
3355.0 0.0030936968289226167
3360.0 0.003117840907105233
3365.0 0.0031420431207095354
3370.0 0.0031663034697355236
3375.0 0.0031906219541831967
3380.0 0.003214998574052557
3385.0 0.003239433329343603
3390.0 0.0032639262200563346
3395.0 0.003288477246190751
3400.0 0.0033130864077468548
3405.0 0.003321724067055163
3410.0 0.003330372785022544
3415.0 0.0033390325616489995
3420.0 0.0033477033969345287
3425.0 0.003356385290879132
3430.0 0.003365078243482808
3435.0 0.0033737822547455576
3440.0 0.0033824973246673806
3445.0 0.003391223453248277
3450.0 0.003399960640488249
3455.0 0.0034087088863872924
3460.0 0.003417468190945411
3465.0 0.003426238554162602
3470.0 0.0034350199760388666
3475.0 0.0034438124565742056
3480.0 0.003452615995768618
3485.0 0.0034614305936221034
3490.0 0.003470256250134663
3495.0 0.0034790929653062963
3500.0 0.0034879407391370026
3505.0 0.0035009664271809385
3510.0 0.003514015062202219
3515.0 0.003527086644200845
3520.0 0.0035401811731768165
3525.0 0.0035532986491301323
3530.0 0.0035664390720607933
3535.0 0.0035796024419687987
3540.0 0.0035927887588541505
3545.0 0.003605998022716847
3550.0 0.003619230233556889
3555.0 0.0036324853913742754
3560.0 0.0036457634961690063
3565.0 0.0036590645479410836
3570.0 0.0036723885466905053
3575.0 0.0036857354924172726
3580.0 0.003699105385121384
3585.0 0.003712498224802841
3590.0 0.0037259140114616436
3595.0 0.0037393527450977912
3600.0 0.003752814425711283
3605.0 0.0037950234170193533
3610.0 0.0038373350345383807
3615.0 0.003879749278268364
3620.0 0.003922266148209306
3625.0 0.0039648856443612055
3630.0 0.004007607766724061
3635.0 0.004050432515297875
3640.0 0.004093359890082647
3645.0 0.004136389891078376
3650.0 0.004179522518285061
3655.0 0.004222757771702705
3660.0 0.004266095651331307
3665.0 0.004309536157170864
3670.0 0.00435307928922138
3675.0 0.004396725047482853
3680.0 0.0044404734319552835
3685.0 0.004484324442638672
3690.0 0.004528278079533017
3695.0 0.004572334342638319
3700.0 0.004616493231954578
3705.0 0.0046124722536385445
3710.0 0.004608423584411084
3715.0 0.004604347224272196
3720.0 0.004600243173221882
3725.0 0.004596111431260142
3730.0 0.004591951998386975
3735.0 0.004587764874602381
3740.0 0.004583550059906362
3745.0 0.004579307554298915
3750.0 0.004575037357780041
3755.0 0.004570739470349742
3760.0 0.004566413892008016
3765.0 0.004562060622754863
3770.0 0.004557679662590283
3775.0 0.004553271011514277
3780.0 0.0045488346695268436
3785.0 0.0045443706366279845
3790.0 0.004539878912817699
3795.0 0.004535359498095987
3800.0 0.004530812392462847
3805.0 0.004562768196679388
3810.0 0.004594792316819616
3815.0 0.004626884752883532
3820.0 0.004659045504871137
3825.0 0.004691274572782429
3830.0 0.004723571956617409
3835.0 0.004755937656376078
3840.0 0.0047883716720584345
3845.0 0.004820874003664478
3850.0 0.00485344465119421
3855.0 0.00488608361464763
3860.0 0.004918790894024738
3865.0 0.004951566489325536
3870.0 0.00498441040055002
3875.0 0.005017322627698192
3880.0 0.0050503031707700525
3885.0 0.0050833520297656025
3890.0 0.005116469204684839
3895.0 0.005149654695527763
3900.0 0.005182908502294377
3905.0 0.005303572726882924
3910.0 0.005424528934749572
3915.0 0.005545777125894321
3920.0 0.005667317300317171
3925.0 0.005789149458018122
3930.0 0.005911273598997175
3935.0 0.006033689723254326
3940.0 0.0061563978307895804
3945.0 0.006279397921602936
3950.0 0.006402689995694391
3955.0 0.006526274053063948
3960.0 0.006650150093711606
3965.0 0.006774318117637365
3970.0 0.0068987781248412245
3975.0 0.007023530115323184
3980.0 0.007148574089083247
3985.0 0.007273910046121409
3990.0 0.007399537986437672
3995.0 0.007525457910032037
4000.0 0.007651669816904504
4005.0 0.007659843135265862
4010.0 0.007668012979797236
4015.0 0.00767617935049862
4020.0 0.00768434224737002
4025.0 0.007692501670411432
4030.0 0.007700657619622858
4035.0 0.007708810095004297
4040.0 0.007716959096555747
4045.0 0.00772510462427721
4050.0 0.007733246678168689
4055.0 0.007741385258230179
4060.0 0.0077495203644616815
4065.0 0.007757651996863199
4070.0 0.007765780155434729
4075.0 0.007773904840176271
4080.0 0.007782026051087828
4085.0 0.007790143788169395
4090.0 0.007798258051420978
4095.0 0.007806368840842572
4100.0 0.00781447615643418
4105.0 0.007822579998195802
4110.0 0.007830680366127435
4115.0 0.007838777260229083
4120.0 0.007846870680500741
4125.0 0.007854960626942414
4130.0 0.007863047099554103
4135.0 0.007871130098335802
4140.0 0.007879209623287513
4145.0 0.00788728567440924
4150.0 0.007895358251700976
4155.0 0.007903427355162728
4160.0 0.007911492984794492
4165.0 0.007919555140596272
4170.0 0.007927613822568062
4175.0 0.007935669030709865
4180.0 0.007943720765021683
4185.0 0.00795176902550351
4190.0 0.007959813812155356
4195.0 0.007967855124977212
4200.0 0.00797589296396908
4205.0 0.007983927329130964
4210.0 0.007991958220462858
4215.0 0.007999985637964764
4220.0 0.008008009581636687
4225.0 0.00801603005147862
4230.0 0.00802404704749057
4235.0 0.00803206056967253
4240.0 0.008040070618024503
4245.0 0.008048077192546488
4250.0 0.008056080293238487
4255.0 0.008096526315512843
4260.0 0.008137045118705534
4265.0 0.008177636702816567
4270.0 0.008218301067845933
4275.0 0.008259038213793642
4280.0 0.008299848140659687
4285.0 0.008340730848444073
4290.0 0.008381686337146792
4295.0 0.008422714606767853
4300.0 0.008463815657307252
4305.0 0.008504989488764988
4310.0 0.008546236101141063
4315.0 0.008587555494435475
4320.0 0.008628947668648225
4325.0 0.008670412623779312
4330.0 0.008711950359828741
4335.0 0.008753560876796507
4340.0 0.00879524417468261
4345.0 0.00883700025348705
4350.0 0.008878829113209832
4355.0 0.008920730753850949
4360.0 0.008962705175410406
4365.0 0.009004752377888201
4370.0 0.009046872361284332
4375.0 0.009089065125598803
4380.0 0.00913133067083161
4385.0 0.009173668996982761
4390.0 0.009216080104052246
4395.0 0.009258563992040067
4400.0 0.009301120660946228
4405.0 0.00934375011077073
4410.0 0.009386452341513567
4415.0 0.009429227353174743
4420.0 0.009472075145754258
4425.0 0.009514995719252111
4430.0 0.009557989073668303
4435.0 0.009601055209002831
4440.0 0.0096441941252557
4445.0 0.009687405822426904
4450.0 0.009730690300516449
4455.0 0.00977404755952433
4460.0 0.009817477599450548
4465.0 0.009860980420295106
4470.0 0.009904556022058005
4475.0 0.009948204404739239
4480.0 0.00999192556833881
4485.0 0.010035719512856723
4490.0 0.01007958623829297
4495.0 0.010123525744647557
4500.0 0.010167538031920484
4505.0 0.010171012488436406
4510.0 0.01017446958022877
4515.0 0.010177909307297572
4520.0 0.010181331669642813
4525.0 0.010184736667264497
4530.0 0.010188124300162617
4535.0 0.01019149456833718
4540.0 0.010194847471788178
4545.0 0.01019818301051562
4550.0 0.010201501184519497
4555.0 0.010204801993799816
4560.0 0.010208085438356574
4565.0 0.010211351518189773
4570.0 0.010214600233299408
4575.0 0.010217831583685489
4580.0 0.010221045569348004
4585.0 0.010224242190286961
4590.0 0.010227421446502356
4595.0 0.010230583337994191
4600.0 0.010233727864762466
4605.0 0.010236855026807181
4610.0 0.010239964824128336
4615.0 0.010243057256725929
4620.0 0.01024613232459996
4625.0 0.010249190027750434
4630.0 0.010252230366177345
4635.0 0.010255253339880695
4640.0 0.01025825894886049
4645.0 0.010261247193116716
4650.0 0.010264218072649389
4655.0 0.010267171587458497
4660.0 0.010270107737544049
4665.0 0.010273026522906036
4670.0 0.010275927943544465
4675.0 0.01027881199945933
4680.0 0.01028167869065064
4685.0 0.010284528017118388
4690.0 0.010287359978862574
4695.0 0.010290174575883198
4700.0 0.010292971808180265
4705.0 0.01029575167575377
4710.0 0.010298514178603713
4715.0 0.010301259316730097
4720.0 0.01030398709013292
4725.0 0.010306697498812186
4730.0 0.010309390542767886
4735.0 0.01031206622200003
4740.0 0.010314724536508611
4745.0 0.010317365486293632
4750.0 0.010319989071355094
4755.0 0.010322595291692995
4760.0 0.010325184147307332
4765.0 0.010327755638198115
4770.0 0.010330309764365333
4775.0 0.010332846525808992
4780.0 0.01033536592252909
4785.0 0.010337867954525628
4790.0 0.010340352621798606
4795.0 0.010342819924348021
4800.0 0.010345269862173876
4805.0 0.010347702435276173
4810.0 0.01035011764365491
4815.0 0.010352515487310084
4820.0 0.010354895966241697
4825.0 0.010357259080449752
4830.0 0.010359604829934244
4835.0 0.010361933214695179
4840.0 0.010364244234732551
4845.0 0.010366537890046362
4850.0 0.010368814180636616
4855.0 0.010371073106503306
4860.0 0.010373314667646438
4865.0 0.010375538864066006
4870.0 0.010377745695762016
4875.0 0.010379935162734466
4880.0 0.010382107264983354
4885.0 0.010384262002508684
4890.0 0.010386399375310452
4895.0 0.01038851938338866
4900.0 0.010390622026743306
4905.0 0.010392707305374392
4910.0 0.010394775219281917
4915.0 0.010396825768465883
4920.0 0.010398858952926289
4925.0 0.010400874772663134
4930.0 0.010402873227676418
4935.0 0.010404854317966143
4940.0 0.010406818043532304
4945.0 0.010408764404374908
4950.0 0.010410693400493951
4955.0 0.010412605031889432
4960.0 0.010414499298561353
4965.0 0.010416376200509716
4970.0 0.010418235737734515
4975.0 0.010420077910235758
4980.0 0.010421902718013434
4985.0 0.010423710161067556
4990.0 0.010425500239398115
4995.0 0.010427272953005112
5000.0 0.01042902830188855
5005.0 0.010450896385217042
5010.0 0.010472787323800331
5015.0 0.01049470111763842
5020.0 0.010516637766731307
5025.0 0.010538597271078993
5030.0 0.010560579630681476
5035.0 0.01058258484553876
5040.0 0.010604612915650841
5045.0 0.010626663841017719
5050.0 0.010648737621639395
5055.0 0.01067083425751587
5060.0 0.010692953748647146
5065.0 0.01071509609503322
5070.0 0.01073726129667409
5075.0 0.010759449353569758
5080.0 0.010781660265720227
5085.0 0.010803894033125492
5090.0 0.010826150655785557
5095.0 0.010848430133700421
5100.0 0.010870732466870082
5105.0 0.010893057655294542
5110.0 0.010915405698973802
5115.0 0.010937776597907858
5120.0 0.010960170352096713
5125.0 0.010982586961540365
5130.0 0.011005026426238818
5135.0 0.011027488746192067
5140.0 0.011049973921400117
5145.0 0.011072481951862964
5150.0 0.011095012837580609
5155.0 0.011117566578553052
5160.0 0.011140143174780296
5165.0 0.011162742626262337
5170.0 0.011185364932999176
5175.0 0.011208010094990815
5180.0 0.011230678112237248
5185.0 0.011253368984738485
5190.0 0.011276082712494518
5195.0 0.011298819295505347
5200.0 0.011321578733770977
5205.0 0.011344361027291406
5210.0 0.011367166176066633
5215.0 0.011389994180096657
5220.0 0.01141284503938148
5225.0 0.0114357187539211
5230.0 0.011458615323715522
5235.0 0.011481534748764741
5240.0 0.011504477029068757
5245.0 0.011527442164627573
5250.0 0.011550430155441186
5255.0 0.01155661730472812
5260.0 0.01156279529462327
5265.0 0.011568964125126627
5270.0 0.011575123796238197
5275.0 0.011581274307957978
5280.0 0.011587415660285968
5285.0 0.011593547853222173
5290.0 0.011599670886766587
5295.0 0.011605784760919214
5300.0 0.011611889475680053
5305.0 0.011617985031049102
5310.0 0.011624071427026362
5315.0 0.011630148663611834
5320.0 0.011636216740805519
5325.0 0.011642275658607414
5330.0 0.011648325417017519
5335.0 0.011654366016035837
5340.0 0.011660397455662367
5345.0 0.011666419735897108
5350.0 0.011672432856740057
5355.0 0.01167843681819122
5360.0 0.011684431620250596
5365.0 0.011690417262918182
5370.0 0.011696393746193981
5375.0 0.011702361070077988
5380.0 0.011708319234570209
5385.0 0.011714268239670641
5390.0 0.011720208085379283
5395.0 0.011726138771696138
5400.0 0.011732060298621203
5405.0 0.01173797266615448
5410.0 0.011743875874295968
5415.0 0.011749769923045668
5420.0 0.011755654812403581
5425.0 0.011761530542369702
5430.0 0.011767397112944037
5435.0 0.011773254524126583
5440.0 0.01177910277591734
5445.0 0.011784941868316308
5450.0 0.011790771801323487
5455.0 0.01179659257493888
5460.0 0.011802404189162482
5465.0 0.011808206643994294
5470.0 0.011813999939434319
5475.0 0.011819784075482556
5480.0 0.011825559052139003
5485.0 0.011831324869403664
5490.0 0.011837081527276534
5495.0 0.011842829025757616
5500.0 0.01184856736484691
5505.0 0.011862374443121321
5510.0 0.011876187035752495
5515.0 0.011890005142740426
5520.0 0.011903828764085122
5525.0 0.011917657899786577
5530.0 0.011931492549844795
5535.0 0.011945332714259776
5540.0 0.01195917839303152
5545.0 0.011973029586160021
5550.0 0.011986886293645287
5555.0 0.012000748515487313
5560.0 0.0120146162516861
5565.0 0.012028489502241651
5570.0 0.012042368267153962
5575.0 0.012056252546423035
5580.0 0.01207014234004887
5585.0 0.012084037648031466
5590.0 0.012097938470370825
5595.0 0.012111844807066943
5600.0 0.012125756658119827
5605.0 0.01213967402352947
5610.0 0.012153596903295873
5615.0 0.01216752529741904
5620.0 0.012181459205898967
5625.0 0.012195398628735655
5630.0 0.012209343565929107
5635.0 0.012223294017479317
5640.0 0.012237249983386296
5645.0 0.01225121146365003
5650.0 0.012265178458270527
5655.0 0.012279150967247788
5660.0 0.012293128990581808
5665.0 0.012307112528272589
5670.0 0.012321101580320135
5675.0 0.012335096146724438
5680.0 0.012349096227485507
5685.0 0.012363101822603337
5690.0 0.012377112932077926
5695.0 0.012391129555909278
5700.0 0.012405151694097392
5705.0 0.01241917934664227
5710.0 0.012433212513543904
5715.0 0.012447251194802306
5720.0 0.012461295390417465
5725.0 0.012475345100389387
5730.0 0.01248940032471807
5735.0 0.012503461063403516
5740.0 0.01251752731644572
5745.0 0.01253159908384469
5750.0 0.01254567636560042
5755.0 0.012545781096577774
5760.0 0.012545867053353879
5765.0 0.012545934235928733
5770.0 0.012545982644302341
5775.0 0.0125460122784747
5780.0 0.012546023138445809
5785.0 0.012546015224215668
5790.0 0.012545988535784276
5795.0 0.012545943073151638
5800.0 0.012545878836317751
5805.0 0.012545795825282615
5810.0 0.01254569404004623
5815.0 0.012545573480608594
5820.0 0.012545434146969712
5825.0 0.012545276039129574
5830.0 0.012545099157088197
5835.0 0.012544903500845564
5840.0 0.012544689070401686
5845.0 0.012544455865756556
5850.0 0.012544203886910178
5855.0 0.01254393313386255
5860.0 0.012543643606613674
5865.0 0.01254333530516355
5870.0 0.012543008229512173
5875.0 0.012542662379659553
5880.0 0.01254229775560568
5885.0 0.012541914357350558
5890.0 0.012541512184894188
5895.0 0.01254109123823657
5900.0 0.012540651517377701
5905.0 0.012540193022317583
5910.0 0.012539715753056216
5915.0 0.012539219709593602
5920.0 0.012538704891929736
5925.0 0.012538171300064623
5930.0 0.012537618933998263
5935.0 0.012537047793730651
5940.0 0.01253645787926179
5945.0 0.01253584919059168
5950.0 0.012535221727720322
5955.0 0.012534575490647713
5960.0 0.012533910479373855
5965.0 0.012533226693898749
5970.0 0.012532524134222395
5975.0 0.012531802800344794
5980.0 0.012531062692265938
5985.0 0.012530303809985838
5990.0 0.012529526153504486
5995.0 0.012528729722821885
6000.0 0.012527914517938037
6005.0 0.012527610530212086
6010.0 0.012527288650868329
6015.0 0.012526948879906772
6020.0 0.012526591217327406
6025.0 0.012526215663130242
6030.0 0.012525822217315269
6035.0 0.012525410879882501
6040.0 0.012524981650831924
6045.0 0.012524534530163545
6050.0 0.012524069517877361
6055.0 0.012523586613973375
6060.0 0.012523085818451588
6065.0 0.012522567131311993
6070.0 0.0125220305525546
6075.0 0.012521476082179397
6080.0 0.012520903720186397
6085.0 0.012520313466575594
6090.0 0.01251970532134698
6095.0 0.01251907928450057
6100.0 0.012518435356036353
6105.0 0.012517773535954336
6110.0 0.01251709382425451
6115.0 0.012516396220936888
6120.0 0.012515680726001458
6125.0 0.012514947339448223
6130.0 0.012514196061277188
6135.0 0.012513426891488353
6140.0 0.012512639830081707
6145.0 0.012511834877057263
6150.0 0.012511012032415012
6155.0 0.012510171296154959
6160.0 0.012509312668277105
6165.0 0.012508436148781443
6170.0 0.012507541737667983
6175.0 0.012506629434936717
6180.0 0.012505699240587647
6185.0 0.012504751154620774
6190.0 0.012503785177036101
6195.0 0.012502801307833622
6200.0 0.012501799547013337
6205.0 0.012500779894575254
6210.0 0.012499742350519361
6215.0 0.012498686914845672
6220.0 0.012497613587554175
6225.0 0.012496522368644878
6230.0 0.012495413258117776
6235.0 0.012494286255972866
6240.0 0.012493141362210159
6245.0 0.012491978576829649
6250.0 0.01249079789983133
6255.0 0.012495785632139699
6260.0 0.012500765362999608
6265.0 0.012505737092411057
6270.0 0.012510700820374046
6275.0 0.012515656546888576
6280.0 0.01252060427195465
6285.0 0.012525543995572258
6290.0 0.01253047571774141
6295.0 0.012535399438462103
6300.0 0.012540315157734332
6305.0 0.012545222875558103
6310.0 0.01255012259193342
6315.0 0.012555014306860271
6320.0 0.012559898020338665
6325.0 0.012564773732368598
6330.0 0.012569641442950072
6335.0 0.012574501152083088
6340.0 0.012579352859767643
6345.0 0.01258419656600374
6350.0 0.012589032270791372
6355.0 0.01259385997413055
6360.0 0.012598679676021265
6365.0 0.012603491376463525
6370.0 0.012608295075457321
6375.0 0.012613090773002659
6380.0 0.012617878469099536
6385.0 0.012622658163747951
6390.0 0.012627429856947911
6395.0 0.01263219354869941
6400.0 0.012636949239002451
6405.0 0.01264169692785703
6410.0 0.012646436615263152
6415.0 0.012651168301220811
6420.0 0.012655891985730014
6425.0 0.012660607668790754
6430.0 0.012665315350403036
6435.0 0.012670015030566856
6440.0 0.012674706709282219
6445.0 0.012679390386549121
6450.0 0.012684066062367563
6455.0 0.012688733736737548
6460.0 0.012693393409659073
6465.0 0.012698045081132137
6470.0 0.012702688751156743
6475.0 0.012707324419732888
6480.0 0.012711952086860573
6485.0 0.012716571752539799
6490.0 0.012721183416770563
6495.0 0.012725787079552872
6500.0 0.012730382740886717
6505.0 0.012729747080689507
6510.0 0.012729095389343484
6515.0 0.012728427666848641
6520.0 0.012727743913204984
6525.0 0.012727044128412504
6530.0 0.01272632831247121
6535.0 0.012725596465381097
6540.0 0.01272484858714217
6545.0 0.012724084677754424
6550.0 0.012723304737217861
6555.0 0.012722508765532478
6560.0 0.012721696762698284
6565.0 0.012720868728715268
6570.0 0.012720024663583438
6575.0 0.012719164567302788
6580.0 0.012718288439873321
6585.0 0.012717396281295038
6590.0 0.012716488091567937
6595.0 0.012715563870692023
6600.0 0.012714623618667284
6605.0 0.012713667335493733
6610.0 0.012712695021171363
6615.0 0.01271170667570018
6620.0 0.012710702299080173
6625.0 0.012709681891311353
6630.0 0.012708645452393714
6635.0 0.01270759298232726
6640.0 0.012706524481111989
6645.0 0.012705439948747899
6650.0 0.012704339385234988
6655.0 0.012703222790573265
6660.0 0.012702090164762727
6665.0 0.012700941507803367
6670.0 0.012699776819695193
6675.0 0.0126985961004382
6680.0 0.01269739935003239
6685.0 0.01269618656847776
6690.0 0.012694957755774316
6695.0 0.012693712911922056
6700.0 0.012692452036920977
6705.0 0.012691175130771082
6710.0 0.012689882193472368
6715.0 0.012688573225024837
6720.0 0.012687248225428494
6725.0 0.012685907194683326
6730.0 0.012684550132789343
6735.0 0.012683177039746547
6740.0 0.012681787915554929
6745.0 0.012680382760214498
6750.0 0.012678961573725247
6755.0 0.0126722541108143
6760.0 0.01266552281476302
6765.0 0.012658767685571396
6770.0 0.012651988723239435
6775.0 0.012645185927767134
6780.0 0.012638359299154495
6785.0 0.012631508837401514
6790.0 0.012624634542508197
6795.0 0.012617736414474546
6800.0 0.012610814453300551
6805.0 0.012603868658986217
6810.0 0.012596899031531541
6815.0 0.012589905570936533
6820.0 0.012582888277201184
6825.0 0.012575847150325494
6830.0 0.012568782190309467
6835.0 0.012561693397153097
6840.0 0.012554580770856394
6845.0 0.012547444311419353
6850.0 0.012540284018841968
6855.0 0.012533099893124247
6860.0 0.012525891934266186
6865.0 0.012518660142267787
6870.0 0.012511404517129048
6875.0 0.012504125058849968
6880.0 0.012496821767430557
6885.0 0.0124894946428708
6890.0 0.012482143685170708
6895.0 0.012474768894330274
6900.0 0.012467370270349505
6905.0 0.012459947813228393
6910.0 0.012452501522966945
6915.0 0.012445031399565156
6920.0 0.01243753744302303
6925.0 0.012430019653340564
6930.0 0.01242247803051776
6935.0 0.012414912574554616
6940.0 0.012407323285451135
6945.0 0.012399710163207314
6950.0 0.012392073207823154
6955.0 0.012384412419298656
6960.0 0.012376727797633817
6965.0 0.01236901934282864
6970.0 0.012361287054883128
6975.0 0.012353530933797272
6980.0 0.01234575097957108
6985.0 0.012337947192204546
6990.0 0.012330119571697678
6995.0 0.012322268118050468
7000.0 0.012314392831262918
7005.0 0.012317936211134214
7010.0 0.012321472092625768
7015.0 0.012325000475737586
7020.0 0.012328521360469658
7025.0 0.012332034746821992
7030.0 0.012335540634794587
7035.0 0.01233903902438744
7040.0 0.012342529915600553
7045.0 0.012346013308433925
7050.0 0.012349489202887556
7055.0 0.012352957598961448
7060.0 0.012356418496655598
7065.0 0.012359871895970008
7070.0 0.012363317796904676
7075.0 0.012366756199459606
7080.0 0.012370187103634796
7085.0 0.012373610509430243
7090.0 0.012377026416845953
7095.0 0.012380434825881921
7100.0 0.012383835736538147
7105.0 0.012387229148814634
7110.0 0.012390615062711382
7115.0 0.012393993478228388
7120.0 0.012397364395365651
7125.0 0.012400727814123175
7130.0 0.012404083734500963
7135.0 0.012407432156499006
7140.0 0.012410773080117309
7145.0 0.012414106505355875
7150.0 0.012417432432214697
7155.0 0.012420750860693778
7160.0 0.012424061790793119
7165.0 0.012427365222512721
7170.0 0.012430661155852582
7175.0 0.012433949590812702
7180.0 0.012437230527393085
7185.0 0.012440503965593723
7190.0 0.012443769905414622
7195.0 0.012447028346855779
7200.0 0.0124502792899172
7205.0 0.012453522734598875
7210.0 0.012456758680900815
7215.0 0.012459987128823012
7220.0 0.012463208078365469
7225.0 0.012466421529528185
7230.0 0.012469627482311162
7235.0 0.012472825936714395
7240.0 0.012476016892737892
7245.0 0.012479200350381647
7250.0 0.01248237630964566
7255.0 0.012478149182323806
7260.0 0.012473904362841081
7265.0 0.012469641851197498
7270.0 0.012465361647393045
7275.0 0.01246106375142773
7280.0 0.012456748163301546
7285.0 0.0124524148830145
7290.0 0.012448063910566586
7295.0 0.012443695245957809
7300.0 0.012439308889188164
7305.0 0.012434904840257655
7310.0 0.01243048309916628
7315.0 0.01242604366591404
7320.0 0.012421586540500937
7325.0 0.012417111722926965
7330.0 0.01241261921319213
7335.0 0.012408109011296428
7340.0 0.012403581117239864
7345.0 0.01239903553102243
7350.0 0.012394472252644133
7355.0 0.01238989128210497
7360.0 0.012385292619404943
7365.0 0.012380676264544048
7370.0 0.012376042217522292
7375.0 0.012371390478339666
7380.0 0.012366721046996177
7385.0 0.012362033923491823
7390.0 0.012357329107826602
7395.0 0.012352606600000518
7400.0 0.012347866400013566
7405.0 0.012343108507865751
7410.0 0.012338332923557066
7415.0 0.01233353964708752
7420.0 0.01232872867845711
7425.0 0.012323900017665833
7430.0 0.01231905366471369
7435.0 0.012314189619600678
7440.0 0.012309307882326806
7445.0 0.012304408452892065
7450.0 0.012299491331296462
7455.0 0.012294556517539993
7460.0 0.012289604011622659
7465.0 0.012284633813544455
7470.0 0.012279645923305391
7475.0 0.012274640340905462
7480.0 0.012269617066344662
7485.0 0.012264576099623
7490.0 0.012259517440740475
7495.0 0.012254441089697084
7500.0 0.012249347046492822
7505.0 0.0122455388658303
7510.0 0.012241714729921905
7515.0 0.012237874638767639
7520.0 0.0122340185923675
7525.0 0.01223014659072149
7530.0 0.012226258633829609
7535.0 0.012222354721691853
7540.0 0.012218434854308229
7545.0 0.01221449903167873
7550.0 0.01221054725380336
7555.0 0.012206579520682118
7560.0 0.012202595832315003
7565.0 0.012198596188702018
7570.0 0.01219458058984316
7575.0 0.012190549035738431
7580.0 0.01218650152638783
7585.0 0.012182438061791357
7590.0 0.012178358641949013
7595.0 0.012174263266860795
7600.0 0.012170151936526704
7605.0 0.012166024650946745
7610.0 0.012161881410120916
7615.0 0.012157722214049208
7620.0 0.012153547062731633
7625.0 0.012149355956168183
7630.0 0.012145148894358864
7635.0 0.012140925877303674
7640.0 0.012136686905002607
7645.0 0.012132431977455675
7650.0 0.012128161094662866
7655.0 0.012123874256624187
7660.0 0.012119571463339635
7665.0 0.01211525271480921
7670.0 0.012110918011032918
7675.0 0.01210656735201075
7680.0 0.012102200737742711
7685.0 0.012097818168228799
7690.0 0.012093419643469015
7695.0 0.012089005163463364
7700.0 0.012084574728211835
7705.0 0.012080128337714437
7710.0 0.012075665991971168
7715.0 0.012071187690982024
7720.0 0.01206669343474701
7725.0 0.012062183223266123
7730.0 0.012057657056539366
7735.0 0.012053114934566737
7740.0 0.012048556857348234
7745.0 0.01204398282488386
7750.0 0.012039392837173615
7755.0 0.012039939353590916
7760.0 0.012040476558810537
7765.0 0.012041004452832479
7770.0 0.012041523035656743
7775.0 0.012042032307283327
7780.0 0.01204253226771223
7785.0 0.012043022916943456
7790.0 0.012043504254977
7795.0 0.012043976281812868
7800.0 0.012044438997451055
7805.0 0.012044892401891565
7810.0 0.012045336495134392
7815.0 0.012045771277179542
7820.0 0.012046196748027012
7825.0 0.012046612907676803
7830.0 0.012047019756128916
7835.0 0.012047417293383347
7840.0 0.012047805519440102
7845.0 0.012048184434299176
7850.0 0.012048554037960572
7855.0 0.01204891433042429
7860.0 0.012049265311690326
7865.0 0.012049606981758682
7870.0 0.012049939340629359
7875.0 0.01205026238830236
7880.0 0.012050576124777678
7885.0 0.01205088055005532
7890.0 0.012051175664135282
7895.0 0.012051461467017565
7900.0 0.012051737958702168
7905.0 0.012052005139189092
7910.0 0.012052263008478335
7915.0 0.0120525115665699
7920.0 0.012052750813463787
7925.0 0.012052980749159992
7930.0 0.012053201373658524
7935.0 0.01205341268695937
7940.0 0.01205361468906254
7945.0 0.01205380737996803
7950.0 0.01205399075967584
7955.0 0.012054164828185972
7960.0 0.012054329585498427
7965.0 0.012054485031613198
7970.0 0.012054631166530293
7975.0 0.012054767990249708
7980.0 0.012054895502771442
7985.0 0.012055013704095499
7990.0 0.012055122594221876
7995.0 0.012055222173150575
8000.0 0.012055312440881594
8005.0 0.012051746423183251
8010.0 0.012048166538416857
8015.0 0.012044572786582417
8020.0 0.012040965167679926
8025.0 0.012037343681709384
8030.0 0.01203370832867079
8035.0 0.01203005910856415
8040.0 0.012026396021389458
8045.0 0.012022719067146718
8050.0 0.012019028245835926
8055.0 0.012015323557457087
8060.0 0.012011605002010196
8065.0 0.012007872579495253
8070.0 0.012004126289912266
8075.0 0.012000366133261225
8080.0 0.011996592109542136
8085.0 0.011992804218754996
8090.0 0.011989002460899805
8095.0 0.011985186835976564
8100.0 0.011981357343985276
8105.0 0.011977513984925938
8110.0 0.01197365675879855
8115.0 0.011969785665603111
8120.0 0.01196590070533962
8125.0 0.011962001878008083
8130.0 0.011958089183608495
8135.0 0.011954162622140854
8140.0 0.01195022219360517
8145.0 0.011946267898001432
8150.0 0.011942299735329644
8155.0 0.011938317705589806
8160.0 0.011934321808781918
8165.0 0.011930312044905982
8170.0 0.011926288413961992
8175.0 0.011922250915949955
8180.0 0.011918199550869871
8185.0 0.011914134318721733
8190.0 0.011910055219505545
8195.0 0.01190596225322131
8200.0 0.011901855419869024
8205.0 0.011897734719448686
8210.0 0.011893600151960306
8215.0 0.011889451717403866
8220.0 0.011885289415779382
8225.0 0.011881113247086846
8230.0 0.011876923211326263
8235.0 0.011872719308497629
8240.0 0.011868501538600942
8245.0 0.011864269901636209
8250.0 0.011860024397603423
8255.0 0.011851298904818959
8260.0 0.011842554134764528
8265.0 0.011833790087440128
8270.0 0.01182500676284576
8275.0 0.011816204160981425
8280.0 0.011807382281847119
8285.0 0.011798541125442846
8290.0 0.011789680691768605
8295.0 0.011780800980824397
8300.0 0.011771901992610218
8305.0 0.011762983727126074
8310.0 0.01175404618437196
8315.0 0.011745089364347877
8320.0 0.011736113267053826
8325.0 0.011727117892489808
8330.0 0.01171810324065582
8335.0 0.011709069311551865
8340.0 0.01170001610517794
8345.0 0.01169094362153405
8350.0 0.011681851860620191
8355.0 0.011672740822436363
8360.0 0.011663610506982567
8365.0 0.011654460914258803
8370.0 0.011645292044265069
8375.0 0.011636103897001367
8380.0 0.011626896472467698
8385.0 0.011617669770664061
8390.0 0.011608423791590458
8395.0 0.011599158535246883
8400.0 0.01158987400163334
8405.0 0.01158057019074983
8410.0 0.011571247102596351
8415.0 0.011561904737172906
8420.0 0.01155254309447949
8425.0 0.011543162174516107
8430.0 0.011533761977282755
8435.0 0.011524342502779438
8440.0 0.01151490375100615
8445.0 0.011505445721962892
8450.0 0.011495968415649666
8455.0 0.011486471832066476
8460.0 0.011476955971213315
8465.0 0.011467420833090184
8470.0 0.011457866417697091
8475.0 0.011448292725034023
8480.0 0.01143869975510099
8485.0 0.011429087507897987
8490.0 0.011419455983425017
8495.0 0.01140980518168208
8500.0 0.011400135102669174
8505.0 0.011400205470705107
8510.0 0.011400268036749516
8515.0 0.011400322800802406
8520.0 0.011400369762863776
8525.0 0.011400408922933621
8530.0 0.011400440281011948
8535.0 0.011400463837098751
8540.0 0.011400479591194031
8545.0 0.011400487543297791
8550.0 0.01140048769341003
8555.0 0.011400480041530747
8560.0 0.011400464587659939
8565.0 0.011400441331797613
8570.0 0.011400410273943767
8575.0 0.011400371414098396
8580.0 0.011400324752261503
8585.0 0.01140027028843309
8590.0 0.011400208022613156
8595.0 0.011400137954801697
8600.0 0.01140006008499872
8605.0 0.011399974413204221
8610.0 0.011399880939418199
8615.0 0.011399779663640653
8620.0 0.011399670585871591
8625.0 0.011399553706111003
8630.0 0.011399429024358898
8635.0 0.011399296540615268
8640.0 0.011399156254880114
8645.0 0.011399008167153443
8650.0 0.011398852277435246
8655.0 0.01139868858572553
8660.0 0.011398517092024291
8665.0 0.011398337796331533
8670.0 0.01139815069864725
8675.0 0.011397955798971448
8680.0 0.011397753097304123
8685.0 0.011397542593645279
8690.0 0.01139732428799491
8695.0 0.011397098180353019
8700.0 0.011396864270719606
8705.0 0.011396622559094674
8710.0 0.01139637304547822
8715.0 0.011396115729870244
8720.0 0.011395850612270745
8725.0 0.011395577692679727
8730.0 0.011395296971097185
8735.0 0.01139500844752312
8740.0 0.011394712121957534
8745.0 0.01139440799440043
8750.0 0.011394096064851802
8755.0 0.011390053480916627
8760.0 0.011385998842731341
8765.0 0.011381932150295943
8770.0 0.011377853403610435
8775.0 0.011373762602674814
8780.0 0.011369659747489085
8785.0 0.011365544838053243
8790.0 0.011361417874367289
8795.0 0.011357278856431226
8800.0 0.011353127784245052
8805.0 0.011348964657808765
8810.0 0.011344789477122369
8815.0 0.01134060224218586
8820.0 0.011336402952999241
8825.0 0.011332191609562513
8830.0 0.011327968211875669
8835.0 0.011323732759938717
8840.0 0.011319485253751654
8845.0 0.011315225693314479
8850.0 0.011310954078627195
8855.0 0.011306670409689797
8860.0 0.011302374686502293
8865.0 0.011298066909064671
8870.0 0.011293747077376941
8875.0 0.011289415191439101
8880.0 0.01128507125125115
8885.0 0.011280715256813085
8890.0 0.011276347208124914
8895.0 0.011271967105186628
8900.0 0.011267574947998233
8905.0 0.011263170736559724
8910.0 0.011258754470871109
8915.0 0.011254326150932376
8920.0 0.011249885776743535
8925.0 0.011245433348304586
8930.0 0.011240968865615524
8935.0 0.011236492328676349
8940.0 0.011232003737487065
8945.0 0.011227503092047671
8950.0 0.011222990392358165
8955.0 0.011218465638418544
8960.0 0.011213928830228818
8965.0 0.011209379967788976
8970.0 0.011204819051099026
8975.0 0.011200246080158963
8980.0 0.01119566105496879
8985.0 0.011191063975528508
8990.0 0.011186454841838112
8995.0 0.011181833653897607
9000.0 0.011177200411706988
9005.0 0.011171897050077895
9010.0 0.011166580903421135
9015.0 0.011161251971736709
9020.0 0.011155910255024616
9025.0 0.011150555753284858
9030.0 0.011145188466517433
9035.0 0.011139808394722343
9040.0 0.011134415537899586
9045.0 0.011129009896049162
9050.0 0.011123591469171074
9055.0 0.011118160257265319
9060.0 0.011112716260331897
9065.0 0.01110725947837081
9070.0 0.011101789911382056
9075.0 0.011096307559365635
9080.0 0.01109081242232155
9085.0 0.011085304500249797
9090.0 0.011079783793150378
9095.0 0.011074250301023294
9100.0 0.011068704023868543
9105.0 0.011063144961686127
9110.0 0.011057573114476044
9115.0 0.011051988482238293
9120.0 0.011046391064972879
9125.0 0.0110407808626798
9130.0 0.011035157875359051
9135.0 0.011029522103010636
9140.0 0.011023873545634558
9145.0 0.01101821220323081
9150.0 0.011012538075799399
9155.0 0.011006851163340322
9160.0 0.011001151465853575
9165.0 0.010995438983339165
9170.0 0.010989713715797086
9175.0 0.010983975663227345
9180.0 0.010978224825629936
9185.0 0.010972461203004859
9190.0 0.010966684795352118
9195.0 0.010960895602671711
9200.0 0.010955093624963637
9205.0 0.010949278862227898
9210.0 0.010943451314464493
9215.0 0.01093761098167342
9220.0 0.01093175786385468
9225.0 0.010925891961008277
9230.0 0.010920013273134205
9235.0 0.010914121800232468
9240.0 0.010908217542303065
9245.0 0.010902300499345995
9250.0 0.01089637067136126
9255.0 0.010895110106476476
9260.0 0.010893841815503114
9265.0 0.010892565798441178
9270.0 0.010891282055290665
9275.0 0.010889990586051576
9280.0 0.010888691390723909
9285.0 0.010887384469307666
9290.0 0.010886069821802848
9295.0 0.010884747448209452
9300.0 0.01088341734852748
9305.0 0.010882079522756933
9310.0 0.010880733970897808
9315.0 0.01087938069295011
9320.0 0.010878019688913831
9325.0 0.010876650958788977
9330.0 0.010875274502575546
9335.0 0.010873890320273543
9340.0 0.01087249841188296
9345.0 0.0108710987774038
9350.0 0.010869691416836066
9355.0 0.010868276330179755
9360.0 0.010866853517434868
9365.0 0.010865422978601404
9370.0 0.010863984713679364
9375.0 0.010862538722668746
9380.0 0.010861085005569553
9385.0 0.010859623562381782
9390.0 0.010858154393105437
9395.0 0.010856677497740516
9400.0 0.010855192876287018
9405.0 0.010853700528744941
9410.0 0.010852200455114291
9415.0 0.010850692655395063
9420.0 0.010849177129587259
9425.0 0.010847653877690877
9430.0 0.010846122899705922
9435.0 0.01084458419563239
9440.0 0.01084303776547028
9445.0 0.010841483609219594
9450.0 0.010839921726880333
9455.0 0.010838352118452493
9460.0 0.01083677478393608
9465.0 0.010835189723331088
9470.0 0.010833596936637522
9475.0 0.010831996423855378
9480.0 0.010830388184984658
9485.0 0.01082877222002536
9490.0 0.010827148528977487
9495.0 0.010825517111841038
9500.0 0.010823877968616013
9505.0 0.01082010199478353
9510.0 0.010816316054878755
9515.0 0.010812520148901694
9520.0 0.010808714276852344
9525.0 0.010804898438730701
9530.0 0.010801072634536776
9535.0 0.010797236864270556
9540.0 0.01079339112793205
9545.0 0.010789535425521253
9550.0 0.01078566975703817
9555.0 0.010781794122482796
9560.0 0.01077790852185513
9565.0 0.01077401295515518
9570.0 0.010770107422382939
9575.0 0.010766191923538407
9580.0 0.010762266458621588
9585.0 0.01075833102763248
9590.0 0.010754385630571083
9595.0 0.010750430267437397
9600.0 0.010746464938231422
9605.0 0.010742489642953157
9610.0 0.010738504381602605
9615.0 0.010734509154179764
9620.0 0.010730503960684631
9625.0 0.010726488801117212
9630.0 0.010722463675477504
9635.0 0.010718428583765505
9640.0 0.010714383525981218
9645.0 0.010710328502124642
9650.0 0.010706263512195776
9655.0 0.010702188556194621
9660.0 0.010698103634121178
9665.0 0.010694008745975446
9670.0 0.010689903891757424
9675.0 0.010685789071467115
9680.0 0.010681664285104515
9685.0 0.010677529532669625
9690.0 0.01067338481416245
9695.0 0.010669230129582983
9700.0 0.010665065478931228
9705.0 0.010660890862207183
9710.0 0.010656706279410852
9715.0 0.010652511730542229
9720.0 0.010648307215601317
9725.0 0.010644092734588117
9730.0 0.010639868287502626
9735.0 0.010635633874344848
9740.0 0.010631389495114782
9745.0 0.010627135149812426
9750.0 0.01062287083843778
9755.0 0.01062183719549682
9760.0 0.01062079690850767
9765.0 0.010619749977470326
9770.0 0.01061869640238479
9775.0 0.01061763618325106
9780.0 0.01061656932006914
9785.0 0.010615495812839024
9790.0 0.010614415661560718
9795.0 0.010613328866234218
9800.0 0.010612235426859526
9805.0 0.010611135343436641
9810.0 0.010610028615965562
9815.0 0.010608915244446295
9820.0 0.010607795228878829
9825.0 0.010606668569263174
9830.0 0.010605535265599325
9835.0 0.010604395317887285
9840.0 0.01060324872612705
9845.0 0.010602095490318625
9850.0 0.010600935610462004
9855.0 0.010599769086557194
9860.0 0.01059859591860419
9865.0 0.010597416106602992
9870.0 0.010596229650553603
9875.0 0.01059503655045602
9880.0 0.010593836806310245
9885.0 0.010592630418116278
9890.0 0.010591417385874116
9895.0 0.010590197709583764
9900.0 0.010588971389245218
9905.0 0.010587738424858478
9910.0 0.010586498816423548
9915.0 0.010585252563940425
9920.0 0.010583999667409107
9925.0 0.010582740126829599
9930.0 0.010581473942201897
9935.0 0.010580201113526002
9940.0 0.010578921640801913
9945.0 0.010577635524029634
9950.0 0.010576342763209163
9955.0 0.010575043358340497
9960.0 0.01057373730942364
9965.0 0.01057242461645859
9970.0 0.010571105279445346
9975.0 0.01056977929838391
9980.0 0.010568446673274282
9985.0 0.01056710740411646
9990.0 0.010565761490910444
9995.0 0.01056440893365624
10000.0 0.010563049732353839
10005.0 0.010559191123171958
10010.0 0.010555323378423813
10015.0 0.010551446498109403
10020.0 0.010547560482228728
10025.0 0.010543665330781788
10030.0 0.010539761043768584
10035.0 0.010535847621189113
10040.0 0.010531925063043379
10045.0 0.010527993369331379
10050.0 0.010524052540053116
10055.0 0.010520102575208586
10060.0 0.010516143474797792
10065.0 0.010512175238820731
10070.0 0.010508197867277408
10075.0 0.01050421136016782
10080.0 0.010500215717491965
10085.0 0.010496210939249847
10090.0 0.01049219702544146
10095.0 0.01048817397606681
10100.0 0.010484141791125898
10105.0 0.01048010047061872
10110.0 0.010476050014545275
10115.0 0.010471990422905567
10120.0 0.010467921695699592
10125.0 0.010463843832927354
10130.0 0.010459756834588852
10135.0 0.010455660700684082
10140.0 0.01045155543121305
10145.0 0.010447441026175753
10150.0 0.010443317485572187
10155.0 0.010439184809402358
10160.0 0.010435042997666266
10165.0 0.010430892050363908
10170.0 0.010426731967495285
10175.0 0.010422562749060399
10180.0 0.010418384395059247
10185.0 0.01041419690549183
10190.0 0.010410000280358147
10195.0 0.010405794519658198
10200.0 0.010401579623391987
10205.0 0.010397355591559508
10210.0 0.010393122424160767
10215.0 0.01038888012119576
10220.0 0.010384628682664486
10225.0 0.01038036810856695
10230.0 0.01037609839890315
10235.0 0.01037181955367308
10240.0 0.010367531572876749
10245.0 0.010363234456514154
10250.0 0.010358928204585291
10255.0 0.0103553350728503
10260.0 0.010351733509845253
10265.0 0.010348123515570146
10270.0 0.010344505090024983
10275.0 0.010340878233209762
10280.0 0.010337242945124484
10285.0 0.010333599225769145
10290.0 0.010329947075143748
10295.0 0.010326286493248293
10300.0 0.010322617480082782
10305.0 0.01031894003564721
10310.0 0.010315254159941582
10315.0 0.010311559852965895
10320.0 0.010307857114720152
10325.0 0.010304145945204348
10330.0 0.01030042634441849
10335.0 0.01029669831236257
10340.0 0.010292961849036593
10345.0 0.010289216954440558
10350.0 0.010285463628574465
10355.0 0.010281701871438315
10360.0 0.010277931683032104
10365.0 0.010274153063355839
10370.0 0.010270366012409512
10375.0 0.010266570530193132
10380.0 0.010262766616706689
10385.0 0.010258954271950189
10390.0 0.010255133495923632
10395.0 0.010251304288627016
10400.0 0.010247466650060343
10405.0 0.01024362058022361
10410.0 0.01023976607911682
10415.0 0.010235903146739974
10420.0 0.010232031783093067
10425.0 0.010228151988176103
10430.0 0.010224263761989082
10435.0 0.010220367104532002
10440.0 0.010216462015804863
10445.0 0.010212548495807668
10450.0 0.010208626544540413
10455.0 0.010204696162003101
10460.0 0.01020075734819573
10465.0 0.010196810103118303
10470.0 0.010192854426770816
10475.0 0.010188890319153272
10480.0 0.01018491778026567
10485.0 0.01018093681010801
10490.0 0.01017694740868029
10495.0 0.010172949575982512
10500.0 0.01016894331201468
10505.0 0.010161333135725684
10510.0 0.010153711105528788
10515.0 0.010146077221423997
10520.0 0.010138431483411309
10525.0 0.010130773891490719
10530.0 0.010123104445662234
10535.0 0.01011542314592585
10540.0 0.010107729992281564
10545.0 0.010100024984729384
10550.0 0.010092308123269304
10555.0 0.010084579407901329
10560.0 0.010076838838625451
10565.0 0.010069086415441676
10570.0 0.010061322138350006
10575.0 0.010053546007350436
10580.0 0.010045758022442964
10585.0 0.010037958183627595
10590.0 0.010030146490904331
10595.0 0.01002232294427317
10600.0 0.010014487543734107
10605.0 0.010006640289287147
10610.0 0.009998781180932288
10615.0 0.009990910218669533
10620.0 0.009983027402498876
10625.0 0.009975132732420323
10630.0 0.009967226208433873
10635.0 0.009959307830539523
10640.0 0.009951377598737278
10645.0 0.009943435513027128
10650.0 0.009935481573409085
10655.0 0.009927515779883146
10660.0 0.009919538132449302
10665.0 0.009911548631107563
10670.0 0.009903547275857927
10675.0 0.009895534066700393
10680.0 0.00988750900363496
10685.0 0.009879472086661626
10690.0 0.009871423315780396
10695.0 0.009863362690991268
10700.0 0.00985529021229424
10705.0 0.009847205879689316
10710.0 0.009839109693176492
10715.0 0.009831001652755772
10720.0 0.009822881758427153
10725.0 0.009814750010190634
10730.0 0.00980660640804622
10735.0 0.009798450951993906
10740.0 0.009790283642033692
10745.0 0.00978210447816558
10750.0 0.009773913460389572
10755.0 0.00977017663485018
10760.0 0.009766432107933005
10765.0 0.009762679879638055
10770.0 0.009758919949965325
10775.0 0.00975515231891482
10780.0 0.009751376986486534
10785.0 0.009747593952680472
10790.0 0.009743803217496632
10795.0 0.009740004780935015
10800.0 0.00973619864299562
10805.0 0.009732384803678447
10810.0 0.009728563262983495
10815.0 0.009724734020910768
10820.0 0.00972089707746026
10825.0 0.009717052432631976
10830.0 0.009713200086425913
10835.0 0.009709340038842074
10840.0 0.009705472289880456
10845.0 0.00970159683954106
10850.0 0.009697713687823887
10855.0 0.009693822834728935
10860.0 0.009689924280256206
10865.0 0.009686018024405699
10870.0 0.009682104067177415
10875.0 0.00967818240857135
10880.0 0.009674253048587511
10885.0 0.009670315987225894
10890.0 0.009666371224486495
10895.0 0.009662418760369322
10900.0 0.00965845859487437
10905.0 0.009654490728001642
10910.0 0.009650515159751134
10915.0 0.009646531890122849
10920.0 0.009642540919116786
10925.0 0.009638542246732943
10930.0 0.009634535872971327
10935.0 0.009630521797831927
10940.0 0.009626500021314755
10945.0 0.009622470543419802
10950.0 0.009618433364147074
10955.0 0.009614388483496564
10960.0 0.009610335901468281
10965.0 0.009606275618062215
10970.0 0.009602207633278377
10975.0 0.009598131947116754
10980.0 0.00959404855957736
10985.0 0.009589957470660184
10990.0 0.009585858680365232
10995.0 0.009581752188692502
11000.0 0.009577637995641994
......@@ -19,9 +19,11 @@ class Observation(object):
def __init__(self, config, Catalog, work_dir=None, data_dir=None):
self.path_dict = config_dir(config=config, work_dir=work_dir, data_dir=data_dir)
self.config = config
self.tel = Telescope(optEffCurve_path=self.path_dict["mirror_file"])
# self.tel = Telescope(optEffCurve_path=self.path_dict["mirror_file"])
self.tel = Telescope()
self.focal_plane = FocalPlane(survey_type=self.config["obs_setting"]["survey_type"])
self.filter_param = FilterParam(filter_dir=self.path_dict["filter_dir"])
# self.filter_param = FilterParam(filter_dir=self.path_dict["filter_dir"])
self.filter_param = FilterParam()
self.chip_list = []
self.filter_list = []
self.Catalog = Catalog
......@@ -42,10 +44,11 @@ class Observation(object):
# Make Chip & Filter lists
chip = Chip(
chipID=chipID,
ccdEffCurve_dir=self.path_dict["ccd_dir"],
CRdata_dir=self.path_dict["CRdata_dir"],
normalize_dir=self.path_dict["normalize_dir"],
sls_dir=self.path_dict["sls_dir"], config=self.config)
# ccdEffCurve_dir=self.path_dict["ccd_dir"],
# CRdata_dir=self.path_dict["CRdata_dir"],
# normalize_dir=self.path_dict["normalize_dir"],
# sls_dir=self.path_dict["sls_dir"],
config=self.config)
filter_id, filter_type = chip.getChipFilter()
filt = Filter(filter_id=filter_id,
filter_type=filter_type,
......@@ -107,7 +110,14 @@ class Observation(object):
dt=1E-3) # shutter effect normalized image for this chip
flat_normal = flat_normal*shuttimg
flat_normal = np.array(flat_normal,dtype='float32')
sky_map = calculateSkyMap_split_g(skyMap=flat_normal, blueLimit=filt.blue_limit, redLimit=filt.red_limit, skyfn=self.path_dict["sky_file"], conf=chip.sls_conf, pixelSize=chip.pix_scale, isAlongY=0)
sky_map = calculateSkyMap_split_g(
skyMap=flat_normal,
blueLimit=filt.blue_limit,
redLimit=filt.red_limit,
# skyfn=self.path_dict["sky_file"],
conf=chip.sls_conf,
pixelSize=chip.pix_scale,
isAlongY=0)
del flat_normal
if pointing.pointing_type == 'MS':
......
import sys
import numpy as np
import scipy.io
from itertools import islice
# from PSF.PSFInterp.PSFUtil import *
# from PSFUtil import findNeighbors, findNeighbors_hoclist
###加载PSF信息###
def LoadPSF(iccd, iwave, ipsf, psfPath, InputMaxPixelPos=True, PSFCentroidWgt=False, PixSizeInMicrons=2.5, PSFBinning=False, PSFConvGauss=False):
"""
load psf informations from psf matrix.
Parameters:
iccd (int): ccd number [1,30].
iwave(int): wave-index [1,4].
ipsf (int): psf number [1, 100].
psfPath (int): path to psf matrix
InputMaxPixelPos(bool-optional): only True for 30*30 psf-matrix
PSFCentroidWgt(bool-optional): True for using psfMat with libCentroid.lib
Returns:
psfInfo (dirctionary)
"""
if iccd not in np.linspace(1, 30, 30, dtype='int'):
print('Error - iccd should be in [1, 30].')
sys.exit()
if iwave not in np.linspace(1, 4, 4, dtype='int'):
print('Error - iwave should be in [1, 4].')
sys.exit()
if ipsf not in np.linspace(1, 900, 900, dtype='int'):
print('Error - ipsf should be in [1, 900].')
sys.exit()
psfInfo = {}
fpath = psfPath +'/' +'ccd{:}'.format(iccd) +'/' + 'wave_{:}'.format(iwave)
#获取ipsf矩阵
'''
if not PSFCentroidWgt:
##读取PSF原数据
fpathMat = fpath +'/' +'5_psf_array' +'/' +'psf_{:}.mat'.format(ipsf)
data = scipy.io.loadmat(fpathMat)
psfInfo['psfMat'] = data['psf']
if PSFCentroidWgt:
##读取PSFCentroidWgt
ffpath = psfPath +'_proc/' +'ccd{:}'.format(iccd) +'/' + 'wave_{:}'.format(iwave)
ffpathMat = ffpath +'/' +'5_psf_array' +'/' +'psf_{:}_centroidWgt.mat'.format(ipsf)
data = scipy.io.loadmat(ffpathMat)
psfInfo['psfMat'] = data['psf']
'''
if not PSFCentroidWgt:
ffpath = fpath
ffpathMat = ffpath +'/5_psf_array/psf_{:}.mat'.format(ipsf)
if PSFCentroidWgt:
ffpath = psfPath +'_proc/ccd{:}/wave_{:}'.format(iccd, iwave)
ffpathMat = ffpath +'/5_psf_array/psf_{:}_centroidWgt.mat'.format(ipsf)
if PSFBinning and (not PSFConvGauss):
ffpath = psfPath +'_bin256x256/ccd{:}/wave_{:}'.format(iccd, iwave)
ffpathMat = ffpath +'/5_psf_array/psf_{:}_centroidWgt.mat'.format(ipsf)
if (not PSFBinning) and PSFConvGauss:
ffpath = psfPath +'_convGauss/ccd{:}/wave_{:}'.format(iccd, iwave)
ffpathMat = ffpath +'/5_psf_array/psf_{:}_centroidWgt.mat'.format(ipsf)
if PSFBinning and PSFConvGauss:
ffpath = psfPath +'_convGauss/ccd{:}/wave_{:}'.format(iccd, iwave)
ffpathMat = ffpath +'/5_psf_array/psf_{:}_centroidWgt_BC.mat'.format(ipsf)
data = scipy.io.loadmat(ffpathMat)
psfInfo['psfMat'] = data['psf']
psfInfo['pixsize'] = PixSizeInMicrons #microns
if PSFBinning:
psfInfo['pixsize'] = PixSizeInMicrons*2.0
#获取ipsf波长
fpathWave = fpath +'/' +'1_wavelength.txt'
f = open(fpathWave, 'r')
wavelength = np.float(f.readline())
f.close()
psfInfo['wavelength'] = wavelength
#获取ipsf位置
fpathCoordinate = fpath +'/' +'4_PSF_coordinate.txt'
f = open(fpathCoordinate, 'r')
header = f.readline()
for line in islice(f, ipsf-1, ipsf):
line = line.strip()
columns = line.split()
f.close()
icol = 0
psfInfo['field_x'] = float(columns[icol]) #deg, 视场采样位置
icol+= 1
psfInfo['field_y'] = float(columns[icol]) #deg
icol+= 1
psfInfo['centroid_x'] = float(columns[icol]) #mm, psf质心相对主光线的偏移量
icol+= 1
psfInfo['centroid_y'] = float(columns[icol]) #mm
icol+= 1
if InputMaxPixelPos == True:
psfInfo['max_x'] = float(columns[icol]) #mm, max pixel postion
icol+= 1
psfInfo['max_y'] = float(columns[icol]) #mm
icol+= 1
psfInfo['image_x'] = float(columns[icol]) #mm, 主光线位置
icol+= 1
psfInfo['image_y'] = float(columns[icol]) #mm
if PSFCentroidWgt:
psfInfo['centroid_x'] = data['cx'][0][0] #mm, psfCentroidWgt质心相对主光线的偏移量
psfInfo['centroid_y'] = data['cy'][0][0] #mm
# if PSFBinning:
# psfInfo['centroid_x'] = data['cx'][0][0] +0.0025/2 #binning引起的主光线漂移
# psfInfo['centroid_y'] = data['cy'][0][0] +0.0025/2
return psfInfo
###插值PSF图像-IDW方法###
def psfMaker_IDW(px, py, PSFMat, cen_col, cen_row, IDWindex=2, OnlyNeighbors=True, hoc=None, hoclist=None, PSFCentroidWgt=False):
"""
psf interpolation by IDW
Parameters:
px, py (float, float): position of the target
PSFMat (numpy.array): image
cen_col, cen_row (numpy.array, numpy.array): potions of the psf centers
IDWindex (int-optional): the power index of IDW
OnlyNeighbors (bool-optional): only neighbors are used for psf interpolation
Returns:
psfMaker (numpy.array)
"""
minimum_psf_weight = 1e-8
ref_col = px
ref_row = py
ngy, ngx = PSFMat[0, :, :].shape
npsf = PSFMat[:, :, :].shape[0]
psfWeight = np.zeros([npsf])
from .PSFUtil import findNeighbors, findNeighbors_hoclist
if OnlyNeighbors == True:
if hoc is None:
neigh = findNeighbors(px, py, cen_col, cen_row, dr=5., dn=4, OnlyDistance=False)
if hoc is not None:
neigh = findNeighbors_hoclist(cen_col, cen_row, tx=px,ty=py, dn=4, hoc=hoc, hoclist=hoclist)
neighFlag = np.zeros(npsf)
neighFlag[neigh] = 1
for ipsf in range(npsf):
if OnlyNeighbors == True:
if neighFlag[ipsf] != 1:
continue
dist = np.sqrt((ref_col - cen_col[ipsf])**2 + (ref_row - cen_row[ipsf])**2)
if IDWindex == 1:
psfWeight[ipsf] = dist
if IDWindex == 2:
psfWeight[ipsf] = dist**2
if IDWindex == 3:
psfWeight[ipsf] = dist**3
if IDWindex == 4:
psfWeight[ipsf] = dist**4
psfWeight[ipsf] = max(psfWeight[ipsf], minimum_psf_weight)
psfWeight[ipsf] = 1./psfWeight[ipsf]
psfWeight /= np.sum(psfWeight)
psfMaker = np.zeros([ngy, ngx], dtype=np.float32)
for ipsf in range(npsf):
if OnlyNeighbors == True:
if neighFlag[ipsf] != 1:
continue
iPSFMat = PSFMat[ipsf, :, :].copy()
ipsfWeight = psfWeight[ipsf]
psfMaker += iPSFMat * ipsfWeight
psfMaker /= np.nansum(psfMaker)
return psfMaker
###TEST###
if __name__ == '__main__':
iccd = 1
iwave= 1
ipsf = 1
psfPath = '/data/simudata/CSSOSDataProductsSims/data/csstPSFdata/CSSOS_psf_20210108/CSST_psf_ciomp_2p5um_cycle3_ccr90'
psfInfo = LoadPSF(iccd, iwave, ipsf, psfPath, InputMaxPixelPos=True, PSFCentroidWgt=True)
print('psfInfo.keys:', psfInfo.keys())
print(psfInfo)
'''
PSF interpolation for CSST-Sim
NOTE: [iccd, iwave, ipsf] are counted from 1 to n, but [tccd, twave, tpsf] are counted from 0 to n-1
'''
import galsim
import numpy as np
import os
import time
import copy
from ObservationSim.PSF.PSFInterp import PSFConfig as myConfig
from ObservationSim.PSF.PSFInterp import PSFUtil as myUtil
from ObservationSim.PSF.PSFModel import PSFModel
LOG_DEBUG = False #***#
NPSF = 900 #***# 30*30
iccdTest = 1 #***#
class PSFInterp(PSFModel):
# def __init__(self, PSF_data=None, params=None, PSF_data_file=None):
def __init__(self, chip, PSF_data=None, PSF_data_file=None, sigSpin=0, psfRa=0.15):
"""
The PSF data matrix is either given by a object parameter or read in from a file.
Parameters:
PSF_data: The PSF data matrix object
params: Other parameters?
PSF_data_file: The file for PSF data matrix (optional).
"""
from . import PSFUtil as myUtil
if LOG_DEBUG:
print('===================================================')
print('DEBUG: psf module for csstSim ' \
+time.strftime("(%Y-%m-%d %H:%M:%S)", time.localtime()), flush=True)
print('===================================================')
self.sigSpin = sigSpin
self.sigGauss = psfRa
self.iccd = int(chip.getChipLabel(chipID=chip.chipID))
if PSF_data_file == None:
PSF_data_file = '/data/simudata/CSSOSDataProductsSims/data/csstPSFdata/CSSOS_psf_20210108/CSST_psf_ciomp_2p5um_cycle3_ccr90'
self.nwave= self._getPSFwave(self.iccd, PSF_data_file)
self.PSF_data = self._loadPSF(self.iccd, PSF_data_file)
if LOG_DEBUG:
print('nwave-{:} on ccd-{:}::'.format(self.nwave, self.iccd), flush=True)
print('self.PSF_data ... ok', flush=True)
print('Preparing self.[psfMat,cen_col,cen_row] for psfMaker ... ', end='', flush=True)
ngy, ngx = self.PSF_data[0][0]['psfMat'].shape
self.psfMat = np.zeros([self.nwave, NPSF, ngy, ngx], dtype=np.float32)
self.cen_col= np.zeros([self.nwave, NPSF], dtype=np.float32)
self.cen_row= np.zeros([self.nwave, NPSF], dtype=np.float32)
self.hoc =[]
self.hoclist=[]
for twave in range(self.nwave):
for tpsf in range(NPSF):
self.psfMat[twave, tpsf, :, :] = self.PSF_data[twave][tpsf]['psfMat']
self.PSF_data[twave][tpsf]['psfMat'] = 0 ###free psfMat
self.pixsize = self.PSF_data[twave][tpsf]['pixsize']*1e-3 ##mm
self.cen_col[twave, tpsf] = self.PSF_data[twave][tpsf]['image_x'] +0.*self.pixsize + self.PSF_data[twave][tpsf]['centroid_x']
self.cen_row[twave, tpsf] = self.PSF_data[twave][tpsf]['image_y'] +0.*self.pixsize + self.PSF_data[twave][tpsf]['centroid_y']
#hoclist on twave for neighborsFinding
hoc,hoclist = myUtil.findNeighbors_hoclist(self.cen_col[twave], self.cen_row[twave])
self.hoc.append(hoc)
self.hoclist.append(hoclist)
if LOG_DEBUG:
print('ok', flush=True)
def _getPSFwave(self, iccd, PSF_data_file):
"""
Get # of sampling waves on iccd
Parameters:
iccd: The chip of i-th ccd
PSF_data_file: The file for PSF data matrix
Returns:
nwave: The number of the sampling waves
"""
strs = os.listdir(PSF_data_file + '/ccd{:}'.format(iccd))
nwave = 0
for _ in strs:
if 'wave_' in _:
nwave += 1
return nwave
def _loadPSF(self, iccd, PSF_data_file):
"""
load psf-matrix on iccd
Parameters:
iccd: The chip of i-th ccd
PSF_data_file: The file for PSF data matrix
Returns:
psfSet: The matrix of the csst-psf
"""
from . import PSFConfig as myConfig
psfSet = []
for ii in range(self.nwave):
iwave = ii+1
if LOG_DEBUG:
print('self._loadPSF: iwave::', iwave, flush=True)
psfWave = []
for jj in range(NPSF):
ipsf = jj+1
psfInfo = myConfig.LoadPSF(iccd, iwave, ipsf, PSF_data_file, InputMaxPixelPos=True, PSFCentroidWgt=True, PSFBinning=True, PSFConvGauss=True)
psfWave.append(psfInfo)
psfSet.append(psfWave)
if LOG_DEBUG:
print('psfSet has been loaded:', flush=True)
print('psfSet[iwave][ipsf][keys]:', psfSet[0][0].keys(), flush=True)
return psfSet
def _preprocessPSF(self):
pass
def _findWave(self, bandpass):
for twave in range(self.nwave):
bandwave = self.PSF_data[twave][0]['wavelength']
if bandpass.blue_limit < bandwave and bandwave < bandpass.red_limit:
return twave
return -1
def get_PSF(self, chip, pos_img, bandpass, pixSize=0.0184, galsimGSObject=True, findNeighMode='treeFind', folding_threshold=5.e-3):
"""
Get the PSF at a given image position
Parameters:
chip: A 'Chip' object representing the chip we want to extract PSF from.
pos_img: A 'galsim.Position' object representing the image position.
bandpass: A 'galsim.Bandpass' object representing the wavelength range.
pixSize: The pixels size of psf matrix
findNeighMode: 'treeFind' or 'hoclistFind'
Returns:
PSF: A 'galsim.GSObject'.
"""
from . import PSFConfig as myConfig
pixSize = np.rad2deg(self.pixsize*1e-3/28)*3600 #set psf pixsize
#***# assert self.iccd == chip.chipID, 'ERROR: self.iccd != chip.chipID'
# twave = bandpass-1 #***# ??? #self.findWave(bandpass) ###twave=iwave-1 as that in NOTE
assert self.iccd == int(chip.getChipLabel(chipID=chip.chipID)), 'ERROR: self.iccd != chip.chipID'
twave = self._findWave(bandpass)
if twave == -1:
print("!!!PSF bandpass does not match.")
exit()
PSFMat = self.psfMat[twave]
cen_col= self.cen_col[twave]
cen_row= self.cen_row[twave]
# px = pos_img[0]
# py = pos_img[1]
px = (pos_img.x - chip.cen_pix_x)*0.01
py = (pos_img.y - chip.cen_pix_y)*0.01
if findNeighMode == 'treeFind':
imPSF = myConfig.psfMaker_IDW(px, py, PSFMat, cen_col, cen_row, IDWindex=2, OnlyNeighbors=True, PSFCentroidWgt=True)
if findNeighMode == 'hoclistFind':
imPSF = myConfig.psfMaker_IDW(px, py, PSFMat, cen_col, cen_row, IDWindex=2, OnlyNeighbors=True, hoc=self.hoc[twave], hoclist=self.hoclist[twave], PSFCentroidWgt=True)
if galsimGSObject:
img = galsim.ImageF(imPSF, scale=pixSize)
gsp = galsim.GSParams(folding_threshold=folding_threshold)
self.psf = galsim.InterpolatedImage(img, gsparams=gsp)
# gaussPSF = galsim.Gaussian(sigma=0.04, gsparams=gsp)
# self.psf = galsim.Convolve(gaussPSF, self.psf)
return self.PSFspin(x=px/0.01, y=py/0.01)
return imPSF
def PSFspin(self, x, y):
"""
The PSF profile at a given image position relative to the axis center
Parameters:
theta : spin angles in a given exposure in unit of [arcsecond]
dx, dy: relative position to the axis center in unit of [pixels]
Return:
Spinned PSF: g1, g2 and axis ratio 'a/b'
"""
a2Rad = np.pi/(60.0*60.0*180.0)
ff = self.sigGauss * 0.107 * (1000.0/10.0) # in unit of [pixels]
rc = np.sqrt(x*x + y*y)
cpix = rc*(self.sigSpin*a2Rad)
beta = (np.arctan2(y,x) + np.pi/2)
ell = cpix**2/(2.0*ff**2+cpix**2)
qr = np.sqrt((1.0+ell)/(1.0-ell))
PSFshear = galsim.Shear(e=ell, beta=beta*galsim.radians)
return self.psf.shear(PSFshear), PSFshear
if __name__ == '__main__':
if True:
psfPath = '/data/simudata/CSSOSDataProductsSims/data/csstPSFdata/CSSOS_psf_20210108/CSST_psf_ciomp_2p5um_cycle3_ccr90'
psfCSST = PSFInterp(PSF_data_file = psfPath)
iwave= 1
ipsf = 665
pos_img = [psfCSST.cen_col[iwave, ipsf], psfCSST.cen_row[iwave, ipsf]]
img = psfCSST.get_PSF(1, pos_img, iwave, galsimGSObject=True)
print('haha')
if False:
#old version (discarded)
#plot check-1
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(18,5))
ax = plt.subplot(1,3,1)
plt.imshow(img)
plt.colorbar()
ax = plt.subplot(1,3,2)
imgx = psfCSST.itpPSF_data[iwave][ipsf]['psfMat']
imgx/= np.sum(imgx)
plt.imshow(imgx)
plt.colorbar()
ax = plt.subplot(1,3,3)
plt.imshow(img - imgx)
plt.colorbar()
plt.savefig('test/figs/test1.jpg')
if False:
#old version (discarded)
#plot check-2: 注意图像坐标和全局坐标
fig = plt.figure(figsize=(8,8), dpi = 200)
img = psfCSST.PSF_data[iwave][ipsf]['psfMat']
npix = img.shape[0]
dng = 105
imgg = img[dng:-dng, dng:-dng]
plt.imshow(imgg)
imgX = psfCSST.PSF_data[iwave][ipsf]['image_x'] #in mm
imgY = psfCSST.PSF_data[iwave][ipsf]['image_y'] #in mm
deltX= psfCSST.PSF_data[iwave][ipsf]['centroid_x'] #in mm
deltY= psfCSST.PSF_data[iwave][ipsf]['centroid_y'] #in mm
maxX = psfCSST.PSF_data[iwave][ipsf]['max_x']
maxY = psfCSST.PSF_data[iwave][ipsf]['max_y']
cenPix_X = npix/2 + deltX/0.005
cenPix_Y = npix/2 - deltY/0.005
maxPix_X = npix/2 + maxX/0.005-1
maxPix_Y = npix/2 - maxY/0.005-1
plt.plot([cenPix_X-dng],[cenPix_Y-dng], 'rx', ms = 20)
plt.plot([maxPix_X-dng],[maxPix_Y-dng], 'b+', ms=20)
from scipy import ndimage
y, x = ndimage.center_of_mass(img)
plt.plot([x-dng],[y-dng], 'rx', ms = 10, mew=4)
from . import PSFUtil as myUtil
x, y = myUtil.findMaxPix(img)
plt.plot([x-dng],[y-dng], 'b+', ms = 10, mew=4)
plt.savefig('test/figs/test2.jpg')
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment