In [1]:
import numpy as np
import sys; sys.path.insert(0, '../')
from gaia_tools.query import make_query, make_simple_query
import warnings; warnings.filterwarnings('ignore')


Created TAP+ (v1.0.1) - Connection:
	Host: gea.esac.esa.int
	Use HTTPS: False
	Port: 80
	SSL Port: 443

Simple Query

This is a simple single-level query.

Default Columns


In [2]:
circle = """
--Selections: Cluster RA
1=CONTAINS(POINT('ICRS',gaia.ra,gaia.dec),
           CIRCLE('ICRS',{ra:.4f},{dec:.4f},{rad:.2f}))
""".format(ra=230, dec=0, rad=4)

In [3]:
df = make_simple_query(
    WHERE=circle,        # The WHERE part of the SQL
    random_index=1e4,         # a shortcut to use the random_index in 'WHERE'
    ORDERBY='gaia.parallax',  # setting the data ordering
    pprint=True,              # print the query
    do_query=True,            # perform the query using gaia_tools.query
    local=False,              # whether to perform the query locally
    units=True                # to fill in missing units from 'defaults' file
)

df


--Data Columns:
SELECT
--GaiaDR2 Columns:
gaia.source_id AS id,
gaia.parallax AS prlx, gaia.parallax_error AS prlx_err,
gaia.ra, gaia.ra_error AS ra_err,
gaia.dec, gaia.dec_error AS dec_err,
gaia.pmra, gaia.pmra_error AS pmra_err,
gaia.pmdec, gaia.pmdec_error AS pmdec_err


--SOURCE:
FROM gaiadr2.gaia_source AS gaia

--Selections:
WHERE
--Selections: Cluster RA
1=CONTAINS(POINT('ICRS',gaia.ra,gaia.dec),
           CIRCLE('ICRS',230.0000,0.0000,4.00))

AND random_index < 10000

--Ordering:
ORDER BY
gaia.parallax


starting query @ m04d02h18m24s59
Query finished.
query finished @ m04d02h18m25s00
Out[3]:
QTable masked=True length=5
idprlxprlx_errrara_errdecdec_errpmrapmra_errpmdecpmdec_err
masmasdegdegdegdegmas / yrmas / yrmas / yrmas / yr
int64float64float64float64float64float64float64float64float64float64float64
44218545112586565121.22755744780675480.47971770270355213228.88752732120230.474143227082140462.67668878354458430.4727195334587449-1.0862054133663160.85968055068229358.13587290374050.8617703124298011
44219674517185504001.35900080524788640.41067570449898166229.304282079222250.329174416431059663.5042978604726480.30141853305113375-15.6176588568289640.69020127163748-11.5195018621479810.6119762121388062
63364814907859200001.97095228742557381.4830800617599345227.88350970130051.527311600754504-3.0088213261988411.2609050214395636-18.1161986775237344.053641595094551-5.9633632978179783.2724859878416246
44220087864836049922.80611593726642460.28322948843882695230.968288861615520.22027536694678632.7768826557094020.20585757806277802-10.5452822692062110.43482056797109383.6264205104134960.40995909534972347
4422017415073107328nannan231.118309426743680.88403465403618252.93735775877888550.9947966063839209nannannannan

The system also supports Pan-STARRS1 and 2MASS cross-matches using the panstarrs1 and twomass keywords


In [4]:
df = make_simple_query(
    WHERE=circle,        # The WHERE part of the SQL
    random_index=1e4,         # a shortcut to use the random_index in 'WHERE'
    ORDERBY='gaia.parallax',  # setting the data ordering
    panstarrs1=True, twomass=True,
    do_query=True,            # perform the query using gaia_tools.query
    local=False,              # whether to perform the query locally
    units=True                # to fill in missing units from 'defaults' file
)

df



starting query @ m04d02h18m25s00
Query finished.
query finished @ m04d02h18m25s01
Out[4]:
QTable masked=True length=2
idprlxprlx_errrara_errdecdec_errpmrapmra_errpmdecpmdec_errgg_errrr_errii_errzz_errjhk
masmasdegdegdegdegmas / yrmas / yrmas / yrmas / yrmagmagmagmagmagmagmagmagmagmagmag
int64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float32float32float32
44218545112586565121.22755744780675480.47971770270355213228.88752732120230.474143227082140462.67668878354458430.4727195334587449-1.0862054133663160.85968055068229358.13587290374050.861770312429801120.76790046691890.041149001568555819.55030059814450.0072349999099969918.40579986572270.0040529998950660217.90029907226560.0026920000091195116.504999160766615.9099998474121115.385000228881836
44220087864836049922.80611593726642460.28322948843882695230.968288861615520.22027536694678632.7768826557094020.20585757806277802-10.5452822692062110.43482056797109383.6264205104134960.4099590953497234720.47620010375980.015688000246882419.25930023193360.0089880004525184617.8614006042480.0032259998843073817.20899963378910.004788999911397715.78800010681152315.20400047302246114.838000297546387

Different Defaults

If you want fewer default columns, this is an option through the defaults keyword.


In [5]:
df = make_simple_query(
    WHERE=circle, random_index=1e4, ORDERBY='gaia.parallax',
    do_query=True, local=False, units=True,
    defaults='empty', 
)

df



starting query @ m04d02h18m25s01
Query finished.
query finished @ m04d02h18m25s01
Out[5]:
QTable masked=True length=5
id
int64
4421854511258656512
4421967451718550400
6336481490785920000
4422008786483604992
4422017415073107328

Likewise, there's an option for much greater detail.


In [6]:
df = make_simple_query(
    WHERE=circle, random_index=1e4, ORDERBY='gaia.parallax',
    do_query=True, local=False, units=True,
    defaults='full'
)

df



starting query @ m04d02h18m25s01
Query finished.
query finished @ m04d02h18m25s02
Out[6]:
QTable masked=True length=5
idref_epochprlxprlx_errrara_errdecdec_errpmrapmra_errpmdecpmdec_errrvelrvel_errlbecl_lonecl_lat
yrmasmasdegdegdegdegmas / yrmas / yrmas / yrmas / yrkm / skm / sdegdegdegdeg
int64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64
44218545112586565122015.51.22755744780675480.47971770270355213228.88752732120230.474143227082140462.67668878354458430.4727195334587449-1.0862054133663160.85968055068229358.13587290374050.8617703124298011nannan3.84813254768700847.75429241848735225.6509921289266520.01174691229745
44219674517185504002015.51.35900080524788640.41067570449898166229.304282079222250.329174416431059663.5042978604726480.30141853305113375-15.6176588568289640.69020127163748-11.5195018621479810.6119762121388062nannan5.19990260510445847.94185070637154225.8320781482635520.92242336503168
63364814907859200002015.51.97095228742557381.4830800617599345227.88350970130051.527311600754504-3.0088213261988411.2609050214395636-18.1161986775237344.053641595094551-5.9633632978179783.2724859878416246nannan356.722551688818644.73931290031377226.2876039594517314.270443215122377
44220087864836049922015.52.80611593726642460.28322948843882695230.968288861615520.22027536694678632.7768826557094020.20585757806277802-10.5452822692062110.43482056797109383.6264205104134960.40995909534972347nannan5.84638007700139146.18235257154016227.7542541562443720.675724379475792
44220174150731073282015.5nannan231.118309426743680.88403465403618252.93735775877888550.9947966063839209nannannannannannan6.16188432780702146.16076695196851227.8627577066468220.87043033203375











Complex Nested Query

A complex query like this one shows the real utility of this package. Instead of keeping track of the complex SQL, we only need to pay close attention to the custom calculated columns.

This ADQL queries for data within a rectangular area on a sky rotated by a rotation matrix and specified North Galactic Pole angles. The specifics aren't important -- the real takeaway is that the sky rotation and calculation are written in a clear format, with all the parts of the query close together. Running the query is trivial after that.


In [7]:
###########
# Custom Calculations

# Innermost Level
l0cols = """
--Rotation Matrix
{K00}*cos(radians(dec))*cos(radians(ra))+
{K01}*cos(radians(dec))*sin(radians(ra))+
{K02}*sin(radians(dec)) AS cosphi1cosphi2,

{K10}*cos(radians(dec))*cos(radians(ra))+
{K11}*cos(radians(dec))*sin(radians(ra))+
{K12}*sin(radians(dec)) AS sinphi1cosphi2,

{K20}*cos(radians(dec))*cos(radians(ra))+
{K21}*cos(radians(dec))*sin(radians(ra))+
{K22}*sin(radians(dec)) AS sinphi2,

--c1, c2
{sindecngp}*cos(radians(dec)){mcosdecngp:+}*sin(radians(dec))*cos(radians(ra{mrangp:+})) as c1,
{cosdecngp}*sin(radians(ra{mrangp:+})) as c2
"""

# Inner Level
l1cols = """
gaia.cosphi1cosphi2, gaia.sinphi1cosphi2, gaia.sinphi2,
gaia.c1, gaia.c2,

atan2(sinphi1cosphi2, cosphi1cosphi2) AS phi1,
atan2(sinphi2, sinphi1cosphi2 / sin(atan2(sinphi1cosphi2, cosphi1cosphi2))) AS phi2"""

# Inner Level
l2cols = """
gaia.sinphi1cosphi2, gaia.cosphi1cosphi2, gaia.sinphi2,
gaia.phi1, gaia.phi2,
gaia.c1, gaia.c2,

( c1*pmra+c2*pmdec)/cos(phi2) AS pmphi1,
(-c2*pmra+c1*pmdec)/cos(phi2) AS pmphi2"""

# Outer Level
l3cols = """
gaia.phi1, gaia.phi2,
gaia.pmphi1, gaia.pmphi2"""

###########
# Custom Selection

l3sel = """
    phi1 > {phi1min:+}
AND phi1 < {phi1max:+}
AND phi2 > {phi2min:+}
AND phi2 < {phi2max:+}
"""

###########
# Custom substitutions

l3userasdict = {
    'K00': .656, 'K01': .755, 'K02': .002,
    'K10': .701, 'K11': .469, 'K12': .537,
    'K20': .53, 'K21': .458, 'K22': .713,
    'sindecngp': -0.925, 'cosdecngp': .382, 'mcosdecngp': -.382,
    'mrangp': -0,
    'phi1min': -0.175, 'phi1max': 0.175,
    'phi2min': -0.175, 'phi2max': 0.175}

###########
# Making Query
df = make_query(
    gaia_mags=True,
    panstarrs1=True,  # doing a Pan-STARRS1 crossmatch
    user_cols=l3cols,
    use_AS=True, user_ASdict=l3userasdict,

    # Inner Query
    FROM=make_query(
        gaia_mags=True,
        user_cols=l2cols,
    
        # Inner Query
        FROM=make_query(
            gaia_mags=True,
            user_cols=l1cols,
        
            # Innermost Query
            FROM=make_query(
                gaia_mags=True,
                inmostquery=True, # telling system this is the innermost level
                user_cols=l0cols,
                random_index=1e4  # quickly specifying random index
            )
        )
    ),
    WHERE=l3sel,
    ORDERBY='gaia.source_id',
    pprint=True,
    # doing query
    do_query=True, local=False, units=True
)

df


--Data Columns:
SELECT
--GaiaDR2 Columns:
gaia.source_id AS id,
gaia.parallax AS prlx, gaia.parallax_error AS prlx_err,
gaia.ra, gaia.ra_error AS ra_err,
gaia.dec, gaia.dec_error AS dec_err,
gaia.pmra, gaia.pmra_error AS pmra_err,
gaia.pmdec, gaia.pmdec_error AS pmdec_err,
--GaiaDR2 Magnitudes and Colors:
gaia.phot_bp_mean_mag AS Gbp,
gaia.phot_bp_mean_flux_over_error AS Gbpfluxfracerr,
gaia.phot_rp_mean_mag AS Grp,
gaia.phot_rp_mean_flux_over_error AS Grpfluxfracerr,
gaia.phot_g_mean_mag AS Gg,
gaia.phot_g_mean_flux_over_error AS Ggfluxfracerr,
gaia.bp_rp AS Gbp_rp, gaia.bp_g AS Gbp_g, gaia.g_rp AS Gg_rp,
--Adding Pan-STARRS1 Columns:
panstarrs1.g_mean_psf_mag AS g, panstarrs1.g_mean_psf_mag_error AS g_err,
panstarrs1.r_mean_psf_mag AS r, panstarrs1.r_mean_psf_mag_error AS r_err,
panstarrs1.i_mean_psf_mag AS i, panstarrs1.i_mean_psf_mag_error AS i_err,
panstarrs1.z_mean_psf_mag AS z, panstarrs1.z_mean_psf_mag_error AS z_err,

--Custom Selection & Assignement:
gaia.phi1, gaia.phi2,
gaia.pmphi1, gaia.pmphi2

--SOURCE:
FROM (
    --Data Columns:
    SELECT
    --GaiaDR2 Columns:
    gaia.source_id,
    gaia.parallax, gaia.parallax_error,
    gaia.ra, gaia.ra_error,
    gaia.dec, gaia.dec_error,
    gaia.pmra, gaia.pmra_error,
    gaia.pmdec, gaia.pmdec_error,
    --GaiaDR2 Magnitudes and Colors:
    gaia.phot_bp_mean_mag,
    gaia.phot_bp_mean_flux_over_error,
    gaia.phot_rp_mean_mag,
    gaia.phot_rp_mean_flux_over_error,
    gaia.phot_g_mean_mag,
    gaia.phot_g_mean_flux_over_error,
    gaia.bp_rp, gaia.bp_g, gaia.g_rp,
    
    --Custom Selection & Assignement:
    gaia.sinphi1cosphi2, gaia.cosphi1cosphi2, gaia.sinphi2,
    gaia.phi1, gaia.phi2,
    gaia.c1, gaia.c2,
    
    ( c1*pmra+c2*pmdec)/cos(phi2) AS pmphi1,
    (-c2*pmra+c1*pmdec)/cos(phi2) AS pmphi2
    
    --SOURCE:
    FROM (
        --Data Columns:
        SELECT
        --GaiaDR2 Columns:
        gaia.source_id,
        gaia.parallax, gaia.parallax_error,
        gaia.ra, gaia.ra_error,
        gaia.dec, gaia.dec_error,
        gaia.pmra, gaia.pmra_error,
        gaia.pmdec, gaia.pmdec_error,
        --GaiaDR2 Magnitudes and Colors:
        gaia.phot_bp_mean_mag,
        gaia.phot_bp_mean_flux_over_error,
        gaia.phot_rp_mean_mag,
        gaia.phot_rp_mean_flux_over_error,
        gaia.phot_g_mean_mag,
        gaia.phot_g_mean_flux_over_error,
        gaia.bp_rp, gaia.bp_g, gaia.g_rp,
        
        --Custom Selection & Assignement:
        gaia.cosphi1cosphi2, gaia.sinphi1cosphi2, gaia.sinphi2,
        gaia.c1, gaia.c2,
        
        atan2(sinphi1cosphi2, cosphi1cosphi2) AS phi1,
        atan2(sinphi2, sinphi1cosphi2 / sin(atan2(sinphi1cosphi2, cosphi1cosphi2))) AS phi2
        
        --SOURCE:
        FROM (
            --Data Columns:
            SELECT
            --GaiaDR2 Columns:
            gaia.source_id,
            gaia.parallax, gaia.parallax_error,
            gaia.ra, gaia.ra_error,
            gaia.dec, gaia.dec_error,
            gaia.pmra, gaia.pmra_error,
            gaia.pmdec, gaia.pmdec_error,
            --GaiaDR2 Magnitudes and Colors:
            gaia.phot_bp_mean_mag,
            gaia.phot_bp_mean_flux_over_error,
            gaia.phot_rp_mean_mag,
            gaia.phot_rp_mean_flux_over_error,
            gaia.phot_g_mean_mag,
            gaia.phot_g_mean_flux_over_error,
            gaia.bp_rp, gaia.bp_g, gaia.g_rp,
            
            --Custom Selection & Assignement:
            --Rotation Matrix
            0.656*cos(radians(dec))*cos(radians(ra))+
            0.755*cos(radians(dec))*sin(radians(ra))+
            0.002*sin(radians(dec)) AS cosphi1cosphi2,
            
            0.701*cos(radians(dec))*cos(radians(ra))+
            0.469*cos(radians(dec))*sin(radians(ra))+
            0.537*sin(radians(dec)) AS sinphi1cosphi2,
            
            0.53*cos(radians(dec))*cos(radians(ra))+
            0.458*cos(radians(dec))*sin(radians(ra))+
            0.713*sin(radians(dec)) AS sinphi2,
            
            --c1, c2
            -0.925*cos(radians(dec))-0.382*sin(radians(dec))*cos(radians(ra+0)) as c1,
            0.382*sin(radians(ra+0)) as c2
            
            
            --SOURCE:
            FROM gaiadr2.gaia_source AS gaia
            
            --Selections:
            WHERE
            random_index <= 10000
        ) AS gaia
    ) AS gaia
) AS gaia

--Comparing to Pan-STARRS1
INNER JOIN gaiadr2.panstarrs1_best_neighbour AS panstarrs1_match ON panstarrs1_match.source_id = gaia.source_id
INNER JOIN gaiadr2.panstarrs1_original_valid AS panstarrs1 ON panstarrs1.obj_id = panstarrs1_match.original_ext_source_id

--Selections:
WHERE
    phi1 > -0.175
AND phi1 < +0.175
AND phi2 > -0.175
AND phi2 < +0.175


--Ordering:
ORDER BY
gaia.source_id


starting query @ m04d02h18m25s02
Query finished.
query finished @ m04d02h18m25s04
Out[7]:
QTable masked=True length=71
idprlxprlx_errrara_errdecdec_errpmrapmra_errpmdecpmdec_errgbpgbpfluxfracerrgrpgrpfluxfracerrggggfluxfracerrgbp_rpgbp_ggg_rpgg_errrr_errii_errzz_errphi1phi2pmphi1pmphi2
masmasdegdegdegdegmas / yrmas / yrmas / yrmas / yrmagmagmagmagmagmagmagmagmagmagmagmagmagmagradradmas / yrmas / yr
int64float64float64float64float64float64float64float64float64float64float64float32float32float32float32float32float32float32float32float32float64float64float64float64float64float64float64float64float64float64float64float64
28895643221290773760.32131770280213990.1408807140407169289.8524563632080.11092118907771961-33.487885120614720.11905868588217561-1.20011584286136470.23157038393445391.20685121604212320.260747350069400819.0207786560058645.64850617.74642562866211108.06866518.4609375579.45081.274353027343750.55984115600585940.7145118713378906nannannannan18.12929916381840.00695599988102913nannan0.15177566486787875-0.016152968043835971.3863772679241089-0.4719919761842213
28895850367543580160.041127827987215010.353640478952157989.642732237290390.27550035439516946-33.2897291210568160.285688657470424663.62010243918838850.54418846804095588.1044497173088810.589179662379125920.44832801818847711.59249718.5968761444091850.6176819.61026382446289280.34791.85145187377929690.83806419372558591.013387680053711nannannannan18.96419906616210.00823699962347746nannan0.15803067899348286-0.0089589858635376030.30147490786345243-7.639027705679244
28935314975222785280.27907653249069760.0884365542337713495.697218418417460.06532838745037702-30.502428703082820.08707457685500691.70960273719562730.140429396609048432.6655647794951710.1604049946827143517.70775032043457156.3257616.725849151611328162.5619517.2907352447509771074.54380.98190116882324220.417015075683593750.564886093139648417.72260093688960.010274999774992517.24670028686520.0049800002016127117.07740020751950.0038469999562948917.01989936828610.003427000017836690.11734124245859556-0.024506749257727892-0.3823366779230443-2.8264187687608446
2894277580582639616-0.035651401278216270.38379135803464853100.835880179485060.2746167229986943-30.395198932042690.3545048046214740.45954501746329920.59815030406594481.80370890644259660.649708003871387320.13536453247070312.89730919.29188537597656218.57854719.889904022216797231.506480.84347915649414060.245460510253906250.598018646240234420.19000053405760.015351000241935319.77770042419430.017004000023007419.67130088806150.01030899956822419.61070060729980.0574739985167980.022452761935390815-0.109795233000383310.29515634154001114-1.687229325064532
2894301117005191936-0.318227233076212150.596439798077345100.553600008989010.37529189714934463-30.061293847337820.51333686865024831.21259089675132440.77501907833296413.3283022337571190.88877917171463nan--nan--20.133920669555664161.91643nannannan20.93540000915530.081396996974945119.8861007690430.0013429999817162819.39739990234380.032894000411033619.25629997253420.02011400088667870.0352089498571001-0.0954560266398650.23771429243865633-3.251390885692647
29184720633734959360.075406317428508380.018291002548211636101.298609700415810.012077191412722404-28.7070306939788050.016833066274518332-0.71986286220134650.0249394485085415731.35045723772439130.03104920746058238714.951737403869629588.631713.43400764465332949.328414.2410297393798834129.26561.51772975921630860.71070766448974610.807022094726562515.1452999114990.0021889999043196414.23630046844480.0030189999379217613.84309959411620.0073420000262558513.60379981994630.001231999951414760.0466047869519749-0.073768658604722061.1188268142430042-0.8769080774380797
29185506440927422720.62731890566815210.782697310231922101.5764170468750.4883607934153599-28.753762293150290.60285986974156642.67389919175432441.02754673381320946.6712988587220150.96593982738499921.06298255920415.7654319.2984752655029322.06145720.290245056152344153.977421.76450729370117190.77273750305175780.991769790649414121.49799919128420.071450002491474220.34160041809080.02418499998748319.66370010375980.014050000347197119.33670043945310.009806999936699870.03974239084528264-0.08033688836902850.230356235609403-6.678244300414476
29211554172048866560.57466440748899860.08445267418651484105.419096195305940.05031977808843377-25.6823891695661080.06735360382631876-4.2265618265655940.118336400144305945.092704446400580.1476344456010169317.961925506591797140.474416.735219955444336299.1169417.420118331909181250.04641.2267055511474610.54180717468261720.684898376464843818.06349945068360.0047829998657107417.36829948425290.0064429999329149717.08449935913090.0025889999233186216.97999954223630.004679999779909850.013578261560780708-0.076364972609506075.601098258390017-2.9216216680014737
2921254824222946560nannan105.453647704758861.5353938308434325-25.1561878923810063.0021763612415984nannannannannan--nan--21.18893432617187539.210197nannannan21.69519996643070.027401000261306821.15830039978030.078388996422290820.77770042419430.052646998316049620.38089942932130.08216799795627590.02366494168491069-0.06263618141108063nannan
................................................................................................
5617824614809288448nannan110.323747508446986.951827359874592-23.75391596272814424.62950700482992nannannannannan--nan--21.2569789886474635.90056nannannannannannannannannan19.93370056152340.0422349981963634-0.08326974542837035-0.14123429085914144nannan
57163193431686019840.008919325624179430.32249764384296475113.84492853981220.17527935331251243-19.8311533172434550.2097809204129951-1.84148383575504580.36546376760969733.0599052293112060.418265516646192319.98268890380859416.04204218.18358993530273473.9652619.202526092529297305.973571.79909896850585940.78016281127929691.018936157226562520.47459983825680.0044869999401271319.304199218750.0081979995593428618.65099906921390.0069559998810291318.23530006408690.00467400019988418-0.11275120160619438-0.122206202605756562.7887407808022315-2.195840085641799
57163318844734202880.226203160921514850.17322687090898847113.805748149758320.09887099797690528-19.6147127666495960.11875267379782026-0.50703173834714830.203441907626457562.05548045812983830.2270451447482301819.04853439331054757.28211617.542325973510742112.9471718.379186630249023718.776551.50620841979980470.66934776306152340.836860656738281219.26219940185550.011695000343024718.38669967651370.0025170000735670317.94479942321780.0050980001688003517.70859909057620.0058079999871552-0.10594716750434026-0.114052984195422981.1941799874420582-1.7314226039780316
57163425059301230081.67999635835477861.684368158294499114.596702303716951.481509623828627-19.858173292946172.3862343665475154-2.6985910260923542.759489881104196-3.9706616713028364.110836746588927521.6779212951660165.209913320.19652175903320311.92628720.94454956054687583.015381.48139953613281250.73337173461914060.748027801513671922.02459907531740.15540100634098120.97330093383790.051045000553131120.43490028381350.026970999315381120.06669998168950.0426100008189678-0.1426585744466888-0.146848695914135771.12648234549481394.656356865114376
57164824187817218560.8451754259173540.5176463449771443113.200170869298280.27402870154885844-19.8748056350068150.3319031507958928-0.55674284836263390.56363379660977910.239869320337816380.665035873957424820.651494979858414.91755318.96736145019531233.8755819.978424072265625239.356141.6841335296630860.67307090759277341.011062622070312521.18029975891110.029458999633789120.07150077819820.01888599991798419.42079925537110.011711000464856619.04840087890630.0121560003608465-0.0899268303865569-0.104019174311982680.6002613412553746-0.025596093812586308
5716500457648588544-0.296110861876860.19294344402742866113.063634980272480.11150535997642579-19.6974557980175860.13209044076450405-1.9894199805756890.227637358101842822.25849430797905940.2636141495569478419.38258552551269540.33897817.835725784301758104.0274718.657146453857422710.479251.54685974121093750.72543907165527340.821420669555664119.54870033264160.0090129999443888718.69330024719240.0075269998051226118.22120094299320.005566999781876817.94989967346190.011489000171423-0.08073320654888885-0.094369025903574642.6384059729209275-1.3877420505238705
57168885122353836800.0423988364276073960.15774273760573246115.103858809565010.08903850741628377-18.3998617580289730.1031557863667918-2.24881199006404930.188032980646108663.65569600388185160.214567380121441618.77215957641601660.38572317.601272583007812125.5818118.271421432495117825.0231.17088699340820310.50073814392089840.670148849487304718.86109924316410.007933000102639218.26829910278320.0084760002791881617.97920036315920.011397999711334717.81620025634770.00308699999004602-0.12619149543922498-0.115436486885413683.3758803428502135-2.635293748147235
57171792643425664000.044949404094057840.15232524871360134115.282702326266470.0813598890748721-18.179822319982360.09326843839600313-4.8262725493074520.173949694537995663.1528177799253230.1953382091748079318.47672271728515673.9469717.296300888061523164.2769217.982465744018555905.22051.18042182922363280.494256973266601560.686164855957031218.56110000610350.0050780000165104917.96969985961910.0086129996925592417.67740058898930.0058550001122057417.53779983520510.0065080001950264-0.12784860222106753-0.11395319179011355.612530588623685-1.2724774548585431
57188341710830712320.186309114169921190.08648532177028069115.971908827259910.04666679406125647-16.869145503988140.050611027236631245-0.77666574974841480.100225561637606331.76031277697126520.105776901047115117.399930953979492241.1692416.71757698059082307.4220317.1288013458251951853.43660.68235397338867190.27112960815429690.41122436523437517.37809944152830.0062739998102188117.13069915771480.0030400000978261217.06040000915530.0030229999683797417.0461997985840.00451500015333295-0.12267559450842516-0.09257769104257941.3354535796158344-1.3828769528247251
5718837985007723776-0.60342682874609970.8471914500478623115.957015298432980.4622587854689712-16.791954778160150.39642150464315634-3.14392046126006260.89144361700744393.87177857715512360.803749981572213621.33354568481445312.13774819.42043876647949234.3006920.42335319519043258.173651.9131069183349610.91019248962402341.002914428710937521.70750045776370.049832001328468320.50729942321780.079944998025894219.83419990539550.01719599962234519.46960067749020.0202399995177984-0.12006369203477486-0.089467443914696984.282936742578678-2.5460628073711047