In [1]:
%pylab inline

import numpy
import astrohack_projections
import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = 16, 16
plot_kwargs = {"interpolation": "nearest",
          "cmap": "afmhot",
          "origin": "lower"}

file_path = "/Users/dalyabaron/Downloads/cutout_242959.hdf5"
illustris_gal = astrohack_projections.illustris_model_and_image(file_path)
illustris_gal.set_image_shape((60, 80))

for i in xrange(16):
    xi_hat, eta_hat = astrohack_projections.choose_random_projection()
    alpha, beta, gamma = numpy.random.uniform(0.0, 360.0, 3)
    intensity = 1.5
    scale = 0.015 * numpy.exp(numpy.random.uniform())
    xshift = numpy.random.uniform(29., 31.)
    yshift = numpy.random.uniform(39., 41.)
    psf_size = 1.5
    bg = 0.
    
    kwargs = {'alpha':alpha, 'beta':beta, 'gamma':gamma, 'intensity':intensity, 'scale':scale, 'xshift': xshift, 'yshift': yshift, 'bg':0.0, 'psf_size':psf_size}
    illustris_gal.set_image_parameters(**kwargs)
    illustris_gal.construct_image()
    
    plt.subplot(4, 4, i+1)
    a, mid = numpy.percentile(illustris_gal.get_image(), [15., 85.])
    ran = mid - a
    vmin = mid - 5. * ran
    vmax = mid + 20. * ran
    plt.imshow(numpy.log10(illustris_gal.get_image()+1), **plot_kwargs)


Populating the interactive namespace from numpy and matplotlib

In [2]:
# create an album of 32 such objects with random projection + normaly distributed noise

# plot parameters
plt.rcParams['figure.figsize'] = 16, 16
plot_kwargs = {"interpolation": "nearest",
          "cmap": "afmhot",
          "origin": "lower"}

# initial galaxy data
file_path = "/Users/dalyabaron/Downloads/cutout_242959.hdf5"
illustris_gal = astrohack_projections.illustris_model_and_image(file_path)
illustris_gal.set_image_shape((60, 80))

# album and PSF initialisation
album = astrohack_projections.album_and_model()
psf = astrohack_projections.mixture_of_gaussians(2)
psf.add_gaussian(1., numpy.array([0., 0.]), numpy.eye(2)*1.)

# galaxy model I fit with
basevar = 0.5 * numpy.eye(3)
gal_model = astrohack_projections.galaxy_model_3d()
v = [3., 0., 0.]
gal_model.add_gaussian(1.0, numpy.array([0., -1., 0.]), basevar + numpy.outer(v,v))
v = [-1., 3., 0.]
gal_model.add_gaussian(1.0, numpy.array([2., 1., 0.]), basevar + numpy.outer(v,v))
v = [1., 3., 0.]
gal_model.add_gaussian(1.0, numpy.array([-2., 1., 0.]), basevar + numpy.outer(v,v))

for i in xrange(32):
    # projection parameters
    xi_hat, eta_hat = astrohack_projections.choose_random_projection()
    alpha, beta, gamma = numpy.random.uniform(0.0, 360.0, 3)
    intensity = 20
    scale = 0.015 * numpy.exp(numpy.random.uniform())
    xshift = numpy.random.uniform(29.5, 31.)
    yshift = numpy.random.uniform(39.5, 41.)
    psf_size = 1.5
    bg = 0.
    # illustris galaxy
    kwargs = {'alpha':alpha, 'beta':beta, 'gamma':gamma, 'intensity':intensity, 'scale':scale, 'xshift': xshift, 'yshift': yshift, 'bg':0.0, 'psf_size':psf_size}
    illustris_gal.set_image_parameters(**kwargs)
    illustris_gal.construct_image(xi_hat, eta_hat)
    # image
    image = astrohack_projections.image_and_model()
    image.set_shape((60, 80))
    image.set_psf(psf)
    kwargs = {'alpha':alpha, 'beta':beta, 'gamma':gamma, 'intensity':intensity, 'scale':scale, 'xshift': xshift, 'yshift': yshift, 'bg':0.0}
    image.set_parameters(**kwargs)
    image.set_galaxy(gal_model)
    image.set_ivar(numpy.ones(image.get_shape()))
    image.set_data(illustris_gal.get_image() + numpy.random.normal(size=image.get_shape())/ numpy.sqrt(image.ivar))
    # album
    album.add_image(image)
    
print len(album)


32
astrohack_projections.py:519: FutureWarning: comparison to `None` will result in an elementwise object comparison in the future.
  if xi_hat == None and eta_hat == None:

In [3]:
def showme(album):
    plt.rcParams['figure.figsize'] = 20, 80
    plot_kwargs = {"interpolation": "nearest",
          "cmap": "afmhot",
          "origin": "lower"}
    for i in xrange(len(album)):
        image = album.get_all_images()[i]
        plt.subplot(16, 4, 2*i+1)
        vmin = -5. / numpy.sqrt(numpy.median(image.get_ivar())) # assumes bg = 0
        vmax = -2. * vmin # assumes bg = 0
        plt.imshow(numpy.nan_to_num(numpy.sqrt(image.get_data())), **plot_kwargs)
        plt.colorbar()
        plt.subplot(16, 4, 2*i+2)
        plt.imshow(numpy.nan_to_num(numpy.sqrt(image.get_synthetic())), **plot_kwargs)
        plt.colorbar()
        
showme(album)


/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/ipykernel/__main__.py:11: RuntimeWarning: invalid value encountered in sqrt

In [7]:
basevar = 0.1 * numpy.eye(3)
gal_model = astrohack_projections.galaxy_model_3d()
num_of_gaussians = 10

for i in xrange(num_of_gaussians - 1):
    mu = numpy.random.uniform(10, 50, size=3)
    v = numpy.random.uniform(-1, 1, size=3)
    fi = basevar + numpy.outer(v, v)
    gal_model.add_gaussian(1.0, mu, fi)
    
gal_model.add_gaussian(10.0, numpy.array((15, 15, 15)), 5*numpy.eye(3))

# album and PSF initialisation
album_new = astrohack_projections.album_and_model()
psf = astrohack_projections.mixture_of_gaussians(2)
psf.add_gaussian(1., numpy.array([0., 0.]), numpy.eye(2)*1.)

for i in xrange(32):
    image = album.get_all_images()[i]
    data = image.get_data()
    parameters = image.get_parameters()
    print parameters
    # image
    image = astrohack_projections.image_and_model()
    image.set_shape((60, 80))
    image.set_psf(psf)
    parameters['scale'] = 1
    image.set_parameters(**parameters)
    image.set_galaxy(gal_model)
    image.set_ivar(numpy.ones(image.get_shape()))
    image.set_data(data)
    # album
    album_new.add_image(image)
    
showme(album_new)
album_new.set_galaxy(gal_model)
plt.savefig("./fitting_pngs/illustris_242959_complex2/initialisation.pdf")


{'beta': 51.232167005586263, 'scale': 1, 'bg': 0.0, 'yshift': 40.66364170432902, 'xshift': 30.23967726027996, 'alpha': 33.039304262559206, 'intensity': 20, 'gamma': 332.08766647984862}
{'beta': 269.05760249898043, 'scale': 1, 'bg': 0.0, 'yshift': 40.46434716815094, 'xshift': 29.681506938355994, 'alpha': 359.42251541683532, 'intensity': 20, 'gamma': 100.77772523808864}
{'beta': 86.960304795069732, 'scale': 1, 'bg': 0.0, 'yshift': 39.99934302872261, 'xshift': 30.608077992663574, 'alpha': 204.72091887562951, 'intensity': 20, 'gamma': 87.083274111293775}
{'beta': 170.79102864186979, 'scale': 1, 'bg': 0.0, 'yshift': 39.686318841503606, 'xshift': 30.507207091277987, 'alpha': 350.4932301653065, 'intensity': 20, 'gamma': 279.06206536226483}
{'beta': 2.9942822562065174, 'scale': 1, 'bg': 0.0, 'yshift': 40.0900289145379, 'xshift': 30.49398327358088, 'alpha': 213.9066337655353, 'intensity': 20, 'gamma': 253.83891976087781}
{'beta': 136.82866879971652, 'scale': 1, 'bg': 0.0, 'yshift': 40.191561849572835, 'xshift': 30.965644389105538, 'alpha': 6.6268733660004031, 'intensity': 20, 'gamma': 145.94013953927058}
{'beta': 261.35203328508828, 'scale': 1, 'bg': 0.0, 'yshift': 39.78311896001456, 'xshift': 30.99758942598634, 'alpha': 54.723504150139263, 'intensity': 20, 'gamma': 56.944498973142196}
{'beta': 74.076660513090857, 'scale': 1, 'bg': 0.0, 'yshift': 40.073363510914405, 'xshift': 30.214083928612197, 'alpha': 70.970648653571246, 'intensity': 20, 'gamma': 224.4097678114673}
{'beta': 46.123968317018495, 'scale': 1, 'bg': 0.0, 'yshift': 40.096238103165696, 'xshift': 29.961446489933792, 'alpha': 273.40689774992848, 'intensity': 20, 'gamma': 186.81029668118532}
{'beta': 346.32577249491675, 'scale': 1, 'bg': 0.0, 'yshift': 39.87368081682815, 'xshift': 29.97823397609284, 'alpha': 334.25609178529322, 'intensity': 20, 'gamma': 5.4689058162132875}
{'beta': 325.10702949339117, 'scale': 1, 'bg': 0.0, 'yshift': 40.05347750480568, 'xshift': 29.75762126337672, 'alpha': 78.453564301519123, 'intensity': 20, 'gamma': 144.41261779584227}
{'beta': 246.56595278900832, 'scale': 1, 'bg': 0.0, 'yshift': 40.97509529646623, 'xshift': 30.016131502989715, 'alpha': 205.70266773579306, 'intensity': 20, 'gamma': 3.7134591387106353}
{'beta': 257.43072972102078, 'scale': 1, 'bg': 0.0, 'yshift': 40.94268477269879, 'xshift': 30.602962775115202, 'alpha': 132.32212602418926, 'intensity': 20, 'gamma': 68.10596021493825}
{'beta': 193.57885657531102, 'scale': 1, 'bg': 0.0, 'yshift': 40.604115309414375, 'xshift': 30.81488484871529, 'alpha': 295.70874002253436, 'intensity': 20, 'gamma': 14.4145415754884}
{'beta': 39.588636568444194, 'scale': 1, 'bg': 0.0, 'yshift': 39.98152231097814, 'xshift': 30.782932602040525, 'alpha': 30.654611275507673, 'intensity': 20, 'gamma': 180.78623829862542}
{'beta': 9.2792120702754985, 'scale': 1, 'bg': 0.0, 'yshift': 40.27347573205639, 'xshift': 29.93787012543212, 'alpha': 39.638912637494258, 'intensity': 20, 'gamma': 228.52319926808315}
{'beta': 123.43445818099934, 'scale': 1, 'bg': 0.0, 'yshift': 40.73412802455406, 'xshift': 29.640676690803325, 'alpha': 339.97969949642038, 'intensity': 20, 'gamma': 225.55944264316668}
{'beta': 213.87424586132343, 'scale': 1, 'bg': 0.0, 'yshift': 39.69246599673718, 'xshift': 30.167642645205163, 'alpha': 90.122185537731184, 'intensity': 20, 'gamma': 119.77508763742014}
{'beta': 233.42928266172686, 'scale': 1, 'bg': 0.0, 'yshift': 40.44014694533738, 'xshift': 29.688547637871856, 'alpha': 198.23777642500283, 'intensity': 20, 'gamma': 311.95908991678164}
{'beta': 1.7758822775682015, 'scale': 1, 'bg': 0.0, 'yshift': 40.97578532272115, 'xshift': 30.43284546675178, 'alpha': 0.74793267027954524, 'intensity': 20, 'gamma': 137.94767515161226}
{'beta': 114.62834162532555, 'scale': 1, 'bg': 0.0, 'yshift': 40.492852811108364, 'xshift': 30.44047893838428, 'alpha': 6.3849985358472638, 'intensity': 20, 'gamma': 84.207942630801313}
{'beta': 174.4875776073329, 'scale': 1, 'bg': 0.0, 'yshift': 40.77587592650575, 'xshift': 29.544918703091643, 'alpha': 265.15309980340697, 'intensity': 20, 'gamma': 3.939544220123512}
{'beta': 240.39540157449139, 'scale': 1, 'bg': 0.0, 'yshift': 40.01750141451756, 'xshift': 30.16419548910987, 'alpha': 17.339313922539926, 'intensity': 20, 'gamma': 311.99536386930964}
{'beta': 230.35770805714472, 'scale': 1, 'bg': 0.0, 'yshift': 39.90487479558989, 'xshift': 30.760980854413933, 'alpha': 177.14430568264586, 'intensity': 20, 'gamma': 181.83394986929261}
{'beta': 22.919860921699879, 'scale': 1, 'bg': 0.0, 'yshift': 40.01969159852675, 'xshift': 29.899379467725556, 'alpha': 211.24793343060691, 'intensity': 20, 'gamma': 333.4461333473489}
{'beta': 245.43396574679215, 'scale': 1, 'bg': 0.0, 'yshift': 40.351480204298625, 'xshift': 29.905510538370045, 'alpha': 341.40442036050678, 'intensity': 20, 'gamma': 324.00913882035621}
{'beta': 337.10042264423799, 'scale': 1, 'bg': 0.0, 'yshift': 40.612460161228775, 'xshift': 30.000722043555346, 'alpha': 95.370004554256582, 'intensity': 20, 'gamma': 62.722222335106402}
{'beta': 189.99582123551576, 'scale': 1, 'bg': 0.0, 'yshift': 40.00437326294882, 'xshift': 29.97120479902282, 'alpha': 250.54994979045756, 'intensity': 20, 'gamma': 123.98583712742128}
{'beta': 80.599029999258363, 'scale': 1, 'bg': 0.0, 'yshift': 40.01985300815489, 'xshift': 29.720412558451883, 'alpha': 11.683329338043794, 'intensity': 20, 'gamma': 284.38497915636589}
{'beta': 128.91117721200047, 'scale': 1, 'bg': 0.0, 'yshift': 40.81431461368351, 'xshift': 30.949626012916404, 'alpha': 336.20155589936678, 'intensity': 20, 'gamma': 180.99561612575928}
{'beta': 170.60050668438211, 'scale': 1, 'bg': 0.0, 'yshift': 40.92181513015649, 'xshift': 30.316452714060738, 'alpha': 100.66536633639227, 'intensity': 20, 'gamma': 10.709726870254679}
{'beta': 217.81363092933944, 'scale': 1, 'bg': 0.0, 'yshift': 40.01118034622436, 'xshift': 29.889627970092032, 'alpha': 278.41749902231152, 'intensity': 20, 'gamma': 229.21087650914046}
/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/ipykernel/__main__.py:11: RuntimeWarning: invalid value encountered in sqrt

In [8]:
# run the thing!
import scipy.optimize as op
num_runs = 20

for i in xrange(num_runs):
    # album optimisation
    galpar0 = album_new.galaxy.get_parameters_vector()
    print "album before", album_new(galpar0)
    result = op.minimize(album_new, galpar0, method="Powell")
    galpar = result['x']
    print "album after", album_new(galpar)
    
    showme(album_new)
    plt.savefig("./fitting_pngs/illustris_242959_complex2/run_%s_album.pdf" % str(2*i).zfill(2))
    plt.close()
    
    
    # image optimisation
    for image in album_new:
        imgpar0 = image.get_parameters_vector()
        print "image before", image(imgpar0)
        result = op.minimize(image, imgpar0)
        imgpar = result['x']
        print "image after", image(imgpar)

    showme(album_new)
    plt.savefig("./fitting_pngs/illustris_242959_complex2/run_%s_image.pdf" % str(2*i+1).zfill(2))
    plt.close()


album before 
/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/optimize/optimize.py:1778: RuntimeWarning: invalid value encountered in double_scalars
  tmp2 = (x - v) * (fx - fw)
/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/optimize/optimize.py:1779: RuntimeWarning: invalid value encountered in double_scalars
  p = (x - v) * tmp2 - (x - w) * tmp1
/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/optimize/optimize.py:1780: RuntimeWarning: invalid value encountered in double_scalars
  tmp2 = 2.0 * (tmp2 - tmp1)
/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/optimize/optimize.py:2108: RuntimeWarning: invalid value encountered in double_scalars
  w = xb - ((xb - xc) * tmp2 - (xb - xa) * tmp1) / denom
100411489.045
album after
/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/ipykernel/__main__.py:11: RuntimeWarning: invalid value encountered in sqrt
/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/ipykernel/__main__.py:14: RuntimeWarning: invalid value encountered in sqrt
 37551634.7708
image before 1052671.65991
image after 301055.049093
image before 822963.933859
image after 139951.473749
image before 322565.585649
image after 53592.4953705
image before 396508.366003
image after 49904.6714683
image before 932952.885243
image after 288927.083343
image before 462010.099091
image after 26918.984334
image before 367036.207467
image after 72126.2643836
image before 1144967.11349
image after 212402.695513
image before 255226.230246
image after 94434.50241
image before 681772.060551
image after 92051.1117435
image before 1858087.48226
image after 520597.972236
image before 495690.894023
image after 29826.8412187
image before 2772250.68321
image after 404447.538866
image before 556916.081006
image after 125321.485364
image before 456844.922017
image after 24939.1951661
image before 569242.851459
image after 106378.997055
image before 470208.915596
image after 178298.526019
image before 510189.822824
image after 31100.6384985
image before 2744298.95668
image after 698301.543003
image before 8172783.31699
image after 2667616.65834
image before 714076.359637
image after 114255.463049
image before 1457816.33716
image after 539551.971216
image before 2143960.08553
image after 267736.406879
image before 451223.953696
image after 90704.8976751
image before 517287.63485
image after 117114.974693
image before 633617.382925
image after 159204.376062
image before 713945.797415
image after 367051.763307
image before 2578050.67358
image after 670080.028969
image before 574136.749554
image after 25192.5375658
image before 509088.202457
image after 27511.7581021
image before 549341.988744
image after 30040.7331304
image before 1663747.71574
image after 488003.141992
album before 9014795.60176
album after 5631418.5182
image before 308592.308313
image after 117249.190566
image before 50829.9156038
image after 30790.197985
image before 30532.6486375
image after 26285.480949
image before 37943.4914132
image after 20960.260051
image before 121995.043629
image after 70173.2354807
image before 26552.0857281
image after 17150.1262062
image before 135347.239092
image after 35099.2522091
image before 297280.195048
image after 255414.380792
image before 67293.9806544
image after 47177.0082917
image before 30467.6593952
image after 24245.4569394
image before 272117.810535
image after 156843.486848
image before 25300.6070444
image after 17118.7452948
image before 412474.211516
image after 348314.557294
image before 45748.70246
image after 29081.9793264
image before 28667.7596677
image after 27891.7432588
image before 129408.227015
image after 110349.697865
image before 226219.371928
image after 74957.7125056
image before 36519.3365779
image after 22521.2046156
image before 429557.941179
image after 376492.399087
image before 1065716.90926
image after 785091.721862
image before 57797.7369255
image after 34249.696045
image before 407504.560712
image after 377007.206645
image before 123063.686146
image after 100889.537758
image before 50692.4885975
image after 36229.362994
image before 153459.670479
image after 18197.5239958
image before 67169.0988438
image after 40983.9695873
image before 366062.458185
image after 330484.826073
image before 215206.697291
image after 129829.332677
image before 22605.1014126
image after 16109.5219113
image before 25985.4915286
image after 21629.5581643
image before 67394.1712668
image after 36983.33432
image before 295766.073368
image after 249018.065203
album before 3984965.61155
album after 3289060.3558
image before 94245.0905271
image after 89867.8579435
image before 29591.1690528
image after 28760.323115
image before 23281.8480348
image after 20766.8128873
image before 21069.5967016
image after 16725.0164014
image before 65295.040246
image after 56163.6468884
image before 18522.1205427
image after 15617.0383757
image before 29979.0273124
image after 25443.4408507
image before 231886.107234
image after 212171.941593
image before 54589.8946721
image after 49465.1596983
image before 23795.5623503
image after 22768.4963278
image before 117779.54364
image after 113534.981023
image before 13256.8938803
image after 12223.1727827
image before 364530.752329
image after 344202.356431
image before 22145.1079786
image after 21220.312091
image before 36333.5018409
image after 25515.5009527
image before 131891.313493
image after 125299.519866
image before 59066.0610791
image after 54972.9145666
image before 27270.1966981
image after 22847.2396925
image before 291208.039297
image after 273939.326866
image before 334625.461268
image after 310511.77217
image before 44662.4838694
image after 34408.7211649
image before 353516.366402
image after 252042.884228
image before 65714.9025213
image after 59787.2801256
image before 43591.5384877
image after 37056.456174
image before 13782.829705
image after 13130.9114332
image before 33623.8525647
image after 30839.2175288
image before 345876.231016
image after 298594.875687
image before 101240.082656
image after 93872.7075807
image before 16498.7279371
image after 14914.9437533
image before 23065.9115422
image after 21634.5886959
image before 40982.5272629
image after 36202.9679145
image before 215976.46346
image after 205479.421963
album before 2940147.91697
album after 2675842.33356
image before 81925.5669152
image after 80199.9346722
image before 27424.4690526
image after 25305.2472606
image before 21127.0188706
image after 19766.6436938
image before 15866.0688582
image after 15062.9089131
image before 52815.0919901
image after 51196.9843297
image before 16675.9929501
image after 15886.0981733
image before 28893.4979945
image after 27568.4124114
image before 186794.635242
image after 181238.13083
image before 53733.0681856
image after 51315.9979015
image before 22497.2818048
image after 21778.185968
image before 103753.892551
image after 102329.07964
image before 12316.2435155
image after 11863.0437415
image before 323155.535164
image after 313130.402355
image before 20294.5652476
image after 19743.5138623
image before 22349.5530495
image after 19603.7144736
image before 140376.899672
image after 75996.0339585
image before 43004.0307325
image after 41515.407491
image before 23057.0434011
image after 21582.5805108
image before 241806.392365
image after 227100.970208
image before 258196.691663
image after 244321.396015
image before 35170.4230428
image after 34144.579815
image before 197205.972111
image after 191456.03084
image before 55945.852877
image after 54969.2379628
image before 41799.5979559
image after 34709.0672988
image before 12581.6740736
image after 12278.1398869
image before 30116.6589451
image after 28858.5221024
image before 231980.464857
image after 225312.831359
image before 89419.5384342
image after 86543.7247946
image before 15284.8322329
image after 14565.7272319
image before 23776.4374581
image after 21947.2144994
image before 38951.6041941
image after 37430.7689945
image before 207374.944131
image after 195738.802986
album before 2504630.1282
album after 2341456.61777
image before 79308.8537038
image after 76943.7858781
image before 22314.0899163
image after 21978.9808149
image before 19131.0522534
image after 18562.7080105
image before 14116.2746342
image after 13817.4175572
image before 48607.7627011
image after 47448.3446755
image before 17497.0780877
image after 15195.0887536
image before 36129.8486117
image after 35121.7165533
image before 176625.689343
image after 173355.160643
image before 53334.1532562
image after 51464.9466078
image before 19656.3432113
image after 19257.1644734
image before 99476.8404468
image after 98939.9081191
image before 12462.3975413
image after 11828.6205629
image before 274109.436339
image after 268488.206741
image before 18466.550733
image after 18215.1848729
image before 19892.8827788
image after 18697.3853258
image before 70801.6320888
image after 69716.8022347
image before 33568.8576255
image after 31432.2148393
image before 18990.0693114
image after 18525.9751334
image before 199996.424879
image after 185011.695433
image before 226249.612848
image after 217775.783255
image before 34784.7105358
image after 34542.0177722
image before 148587.412943
image after 132470.325849
image before 56437.4884899
image after 55455.8473528
image before 30182.3623726
image after 29459.9471718
image before 11300.8236566
image after 11171.5787539
image before 26145.2936142
image after 25800.2052384
image before 230760.437057
image after 227780.887759
image before 79102.3991159
image after 77564.524104
image before 14427.6399366
image after 14084.6984615
image before 24702.4257801
image after 22992.1407624
image before 35078.7598436
image after 33276.6964913
image before 189043.860417
image after 178976.862432
album before 2255519.97633
album after 2130474.1566
image before 73829.0934911
image after 72376.8915205
image before 20706.9055675
image after 20553.6813019
image before 18455.1761349
image after 18003.5969862
image before 12784.7087034
image after 12570.139727
image before 45471.4534469
image after 45319.9012568
image before 13508.015768
image after 13268.1074337
image before 39433.6902689
image after 38878.2881464
image before 140466.342311
image after 136118.853494
image before 51385.2011388
image after 48951.7531544
image before 18147.3673314
image after 18045.9404611
image before 95186.4527464
image after 94897.3395878
image before 11555.0217632
image after 11479.7692633
image before 236978.06623
image after 231074.542674
image before 18036.0198166
image after 17950.5844334
image before 19243.5710684
image after 18313.3759509
image before 64838.662484
image after 62905.6253333
image before 29044.5216828
image after 28110.3920682
image before 16687.162775
image after 16179.7390711
image before 170178.684157
image after 158937.447988
image before 209436.719052
image after 202708.87679
image before 34917.3910317
image after 34725.4437905
image before 120160.800232
image after 81312.8743984
image before 56050.3338062
image after 55813.1736998
image before 28092.7396245
image after 27590.2232014
image before 10682.5043529
image after 10599.6414103
image before 24958.5235816
image after 24846.380411
image before 238166.017355
image after 231194.380917
image before 71620.2810159
image after 71217.3058201
image before 13657.3049757
image after 13417.0819809
image before 24080.4925539
image after 23421.4497107
image before 35491.3857594
image after 32917.1788007
image before 167092.746471
image after 163634.660113
album before 2037465.4408
album after 1916919.80877
image before 71476.9613825
image after 69702.7110702
image before 18893.7325784
image after 18791.1650683
image before 18945.9751446
image after 18439.4044055
image before 11569.7689735
image after 11450.5104004
image before 44623.508295
image after 44520.2582987
image before 12891.0463696
image after 12705.4406026
image before 37130.1840005
image after 35524.7268577
image before 120739.357163
image after 117130.89726
image before 51496.0933731
image after 47630.4844016
image before 17873.5406297
image after 17784.2873584
image before 90120.3725149
image after 89072.6602739
image before 10851.8880662
image after 10756.6318095
image before 179736.491727
image after 174339.821413
image before 16689.4484506
image after 16559.1491401
image before 17615.0302752
image after 17057.2677693
image before 66885.0233926
image after 51278.9110664
image before 32924.0590743
image after 29827.632806
image before 16032.0640532
image after 15669.2960945
image before 169593.732959
image after 155739.851871
image before 184113.336015
image after 177773.551917
image before 33783.5937138
image after 33687.1305805
image before 72083.7892435
image after 70472.0493305
image before 54374.4818832
image after 54025.3315101
image before 27000.59769
image after 26565.2065379
image before 10223.5010402
image after 10138.5887136
image before 23386.2587873
image after 23316.3605623
image before 229357.733348
image after 225870.900785
image before 69622.3310668
image after 69290.484508
image before 13469.1378256
image after 13210.7769475
image before 19995.3365088
image after 19223.4523448
image before 35334.0006548
image after 34707.9743367
image before 137971.354118
image after 130755.234864
album before 1843134.22936
album after 1804594.19251
image before 69565.5680371
image after 68261.0306226
image before 18736.3616729
image after 18700.7783087
image before 18993.0508924
image after 18647.8429744
image before 11605.172833
image after 11545.3517224
image before 43612.2743412
image after 43529.5327625
image before 12245.6873315
image after 12190.2058605
image before 34286.0501579
image after 33047.4884969
image before 107817.649747
image after 105105.373635
image before 50484.7909266
image after 48964.4281105
image before 18136.1866981
image after 18104.9986894
image before 86652.5764735
image after 86207.1807162
image before 10665.8462262
image after 10634.8034021
image before 160126.667554
image after 156954.869691
image before 16154.2458864
image after 16101.5980447
image before 16526.6429816
image after 16285.8639003
image before 50976.0467658
image after 50385.2598125
image before 32400.1958976
image after 30815.9153191
image before 15886.3876913
image after 15800.3233787
image before 161887.890648
image after 159797.581445
image before 163758.84953
image after 161337.068431
image before 34342.5355838
image after 34248.090237
image before 65211.0739179
image after 64279.7888722
image before 53260.759226
image after 53122.4944123
image before 26756.1567761
image after 26488.3625329
image before 10240.5243676
image after 10215.9097663
image before 22508.0603708
image after 22438.640734
image before 224042.768954
image after 221681.53606
image before 69639.6841074
image after 69552.1713142
image before 13921.3647692
image after 13785.0675424
image before 18545.996739
image after 18308.735728
image before 35504.5872513
image after 35357.4977738
image before 129979.007407
image after 127872.520376
album before 1779891.84143
album after 1749737.56318
image before 66928.318184
image after 65739.9286021
image before 17991.410015
image after 17931.6052657
image before 19619.5369648
image after 19246.4396623
image before 11662.6143635
image after 11611.0941221
image before 42334.5471425
image after 42218.925126
image before 11772.7966263
image after 11726.6499013
image before 31736.5124804
image after 31320.24462
image before 99265.8780968
image after 96785.0095994
image before 48370.2898782
image after 47464.8076015
image before 18510.0243386
image after 18464.3846
image before 84627.1982814
image after 84217.7167823
image before 10517.7134281
image after 10482.9649732
image before 144913.02744
image after 141883.977005
image before 15994.4198079
image after 15940.9966493
image before 15929.6537068
image after 15747.0770259
image before 52233.2757711
image after 51965.1445579
image before 31506.9803868
image after 30764.7905217
image before 15806.477563
image after 15735.7799798
image before 164005.864336
image after 161445.808885
image before 160868.498513
image after 158618.882337
image before 33424.8235715
image after 33326.6243211
image before 61667.0130356
image after 60241.5248406
image before 54182.8782727
image after 53961.817381
image before 26656.2490268
image after 26529.538355
image before 10196.4253528
image after 10166.9584401
image before 21976.2278091
image after 21865.9009444
image before 216126.701566
image after 214461.433851
image before 65840.3924965
image after 65521.5220937
image before 13870.8938455
image after 13649.5865806
image before 18084.6234343
image after 17826.7423071
image before 35316.4779168
image after 35204.2562841
image before 127661.187143
image after 125461.445727
album before 1727668.21133
album after 1709433.7358
image before 66034.7281596
image after 65643.4673141
image before 18191.4740777
image after 18162.7056938
image before 19149.0732451
image after 18952.2794422
image before 11705.6245077
image after 11638.1648637
image before 42768.9829257
image after 42682.4364762
image before 11524.7925993
image after 11511.193402
image before 31642.6364638
image after 31505.7411286
image before 92366.3643584
image after 90755.3245288
image before 47414.2412228
image after 46955.1708683
image before 19039.1035252
image after 19024.3689497
image before 82077.7332563
image after 81877.514164
image before 10483.9007616
image after 10448.0187909
image before 133679.418317
image after 131887.95364
image before 16373.6923737
image after 16357.9160924
image before 15516.1579
image after 15347.5877495
image before 52034.828572
image after 51676.2291517
image before 31772.1879027
image after 31482.5749809
image before 15396.8021774
image after 15325.7307478
image before 159763.062414
image after 158802.684004
image before 153892.790455
image after 153096.714865
image before 33453.9876836
image after 33417.3738352
image before 59230.93108
image after 58867.9178724
image before 53741.562497
image after 53652.8673667
image before 26516.0472596
image after 26378.7945201
image before 10442.7495893
image after 10435.7458908
image before 22103.3505996
image after 22056.2418328
image before 210494.131391
image after 208857.085301
image before 66431.4147269
image after 66083.2325758
image before 13969.5456751
image after 13857.8256203
image before 18179.4608388
image after 17991.0339145
image before 35285.2156514
image after 34197.7761878
image before 128610.075148
image after 127927.540699
album before 1697004.88091
album after 1685285.86473
image before 66412.6441858
image after 66280.1145636
image before 18132.4276804
image after 18119.3846661
image before 19044.7362079
image after 18965.1608842
image before 11771.1564695
image after 11738.679097
image before 44116.2372884
image after 44038.0749416
image before 11389.2447418
image after 11381.588325
image before 31573.4549748
image after 31505.7668516
image before 86491.602286
image after 84903.7227035
image before 47159.5227456
image after 46925.2495232
image before 19222.5509004
image after 19211.2508524
image before 81091.6279729
image after 81013.3119039
image before 10428.3091913
image after 10414.0211561
image before 127275.037359
image after 125325.241382
image before 16608.0241089
image after 16598.0699245
image before 15158.913977
image after 14987.7766585
image before 51553.805763
image after 51391.4019989
image before 31865.2377814
image after 31666.2726863
image before 15172.7077913
image after 15117.2547271
image before 159070.844822
image after 158635.702416
image before 152522.837325
image after 152246.604236
image before 33770.2932655
image after 33743.4591522
image before 58887.4344166
image after 58641.6024174
image before 53811.05212
image after 53739.2345784
image before 26620.3259303
image after 26525.4011618
image before 10541.8155004
image after 10536.519488
image before 22522.4309634
image after 22490.4250255
image before 204095.431454
image after 202540.579756
image before 65463.8131771
image after 63445.5817495
image before 13924.3471036
image after 13880.5429797
image before 18194.6369015
image after 18023.3900133
image before 33787.9289181
image after 33007.9908398
image before 127451.585332
image after 126981.294069
album before 1674174.5168
album after 1660985.49146
image before 67674.506418
image after 67491.4694387
image before 18140.5543878
image after 18091.4310016
image before 19007.6384531
image after 18956.6202117
image before 11819.1925666
image after 11789.5970888
image before 46691.9484538
image after 46358.0018218
image before 11336.9853566
image after 11316.4616884
image before 31612.459271
image after 31580.2553924
image before 83032.2683341
image after 82277.125794
image before 46283.4278415
image after 46151.0767239
image before 19410.3735912
image after 19382.1667887
image before 79527.1313114
image after 79447.6831482
image before 10565.7054388
image after 10545.7113936
image before 120852.591177
image after 120045.177408
image before 17420.6699698
image after 17368.3826453
image before 15013.0878039
image after 14854.4621496
image before 51132.9371469
image after 50913.4542801
image before 32342.865384
image after 32270.1923984
image before 14945.9191455
image after 14884.3250982
image before 158491.516436
image after 158258.812397
image before 147871.081283
image after 147620.926861
image before 34718.2819173
image after 34581.657212
image before 58621.9609971
image after 58567.6877602
image before 55129.3851084
image after 54702.3704907
image before 26511.1932036
image after 26394.3533801
image before 10817.1786757
image after 10796.9285569
image before 23101.9186929
image after 23038.2470082
image before 199587.911796
image after 198182.589692
image before 57068.8033244
image after 56070.7390242
image before 14065.6845446
image after 14021.8433752
image before 18501.29817
image after 18341.4803998
image before 32898.3866272
image after 32835.3104856
image before 126633.138354
image after 126363.521621
album before 1653657.55302
album after 1646646.46511
image before 67839.0380743
image after 67732.8234903
image before 18217.1272656
image after 18171.993638
image before 18842.6162127
image after 18815.4378023
image before 11973.1892244
image after 11947.2055107
image before 47333.6052115
image after 47158.9926421
image before 11299.4011575
image after 11283.0670926
image before 31815.0928836
image after 31802.97744
image before 80542.3830206
image after 79988.7683874
image before 45336.7404536
image after 45272.7197717
image before 19747.751088
image after 19727.9528649
image before 78935.5555303
image after 78861.9309962
image before 10625.9559485
image after 10610.4996416
image before 117408.659768
image after 116720.887715
image before 17997.8412867
image after 16434.8456495
image before 14870.9075872
image after 14722.5904963
image before 50577.4268785
image after 50440.8513351
image before 32613.7604572
image after 32554.6044705
image before 14750.9615098
image after 14681.1787763
image before 157902.916806
image after 157790.049831
image before 145870.919581
image after 145809.893206
image before 34663.3725492
image after 34577.885738
image before 59117.9714004
image after 59063.989749
image before 54451.4011344
image after 54249.4897174
image before 26289.9504326
image after 26209.4730846
image before 11108.53517
image after 11091.1817124
image before 23077.076586
image after 23031.9772124
image before 194763.133493
image after 193456.460129
image before 55393.3883995
image after 55005.8735206
image before 14100.1946895
image after 14072.9080062
image before 18896.4670705
image after 18753.9480199
image before 32815.1608113
image after 32762.8459063
image before 127304.594694
image after 127151.361925
album before 1640120.03421
/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/optimize/optimize.py:891: RuntimeWarning: divide by zero encountered in double_scalars
  rhok = 1.0 / (numpy.dot(yk, sk))
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-8-397f39c41bd6> in <module>()
      7     galpar0 = album_new.galaxy.get_parameters_vector()
      8     print "album before", album_new(galpar0)
----> 9     result = op.minimize(album_new, galpar0, method="Powell")
     10     galpar = result['x']
     11     print "album after", album_new(galpar)

/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/optimize/_minimize.pyc in minimize(fun, x0, args, method, jac, hess, hessp, bounds, constraints, tol, callback, options)
    432         return _minimize_neldermead(fun, x0, args, callback, **options)
    433     elif meth == 'powell':
--> 434         return _minimize_powell(fun, x0, args, callback, **options)
    435     elif meth == 'cg':
    436         return _minimize_cg(fun, x0, args, jac, callback, **options)

/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/optimize/optimize.pyc in _minimize_powell(func, x0, args, callback, xtol, ftol, maxiter, maxfev, disp, direc, return_all, **unknown_options)
   2341             fx2 = fval
   2342             fval, x, direc1 = _linesearch_powell(func, x, direc1,
-> 2343                                                  tol=xtol * 100)
   2344             if (fx2 - fval) > delta:
   2345                 delta = fx2 - fval

/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/optimize/optimize.pyc in _linesearch_powell(func, p, xi, tol)
   2163     def myfunc(alpha):
   2164         return func(p + alpha*xi)
-> 2165     alpha_min, fret, iter, num = brent(myfunc, full_output=1, tol=tol)
   2166     xi = alpha_min*xi
   2167     return squeeze(fret), p + xi, xi

/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/optimize/optimize.pyc in brent(func, args, brack, tol, full_output, maxiter)
   1903     options = {'xtol': tol,
   1904                'maxiter': maxiter}
-> 1905     res = _minimize_scalar_brent(func, brack, args, **options)
   1906     if full_output:
   1907         return res['x'], res['fun'], res['nit'], res['nfev']

/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/optimize/optimize.pyc in _minimize_scalar_brent(func, brack, args, xtol, maxiter, **unknown_options)
   1935                   full_output=True, maxiter=maxiter)
   1936     brent.set_bracket(brack)
-> 1937     brent.optimize()
   1938     x, fval, nit, nfev = brent.get_result(full_output=True)
   1939     return OptimizeResult(fun=fval, x=x, nit=nit, nfev=nfev)

/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/optimize/optimize.pyc in optimize(self)
   1748         #################################
   1749         x = w = v = xb
-> 1750         fw = fv = fx = func(*((x,) + self.args))
   1751         if (xa < xc):
   1752             a = xa

/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/optimize/optimize.pyc in myfunc(alpha)
   2162     """
   2163     def myfunc(alpha):
-> 2164         return func(p + alpha*xi)
   2165     alpha_min, fret, iter, num = brent(myfunc, full_output=1, tol=tol)
   2166     xi = alpha_min*xi

/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/optimize/optimize.pyc in function_wrapper(*wrapper_args)
    283     def function_wrapper(*wrapper_args):
    284         ncalls[0] += 1
--> 285         return function(*(wrapper_args + args))
    286 
    287     return ncalls, function_wrapper

/Users/dalyabaron/Copy/Astrophysics/python/new_scripts/new_scripts/DeprojectAllGalaxies/astrohack_projections.pyc in __call__(self, galparvec)
    444                 galaxy.set_parameters_from_vector(galparvec)
    445                 self.set_galaxy(galaxy) # must use `set_galaxy()` to propagate to images
--> 446                 return -2. * self.get_ln_posterior()
    447 
    448 

/Users/dalyabaron/Copy/Astrophysics/python/new_scripts/new_scripts/DeprojectAllGalaxies/astrohack_projections.pyc in get_ln_posterior(self)
    434                 lnp = self.get_ln_prior()
    435                 if numpy.isfinite(lnp):
--> 436                         lnp += self.get_ln_likelihood()
    437                 return lnp
    438 

/Users/dalyabaron/Copy/Astrophysics/python/new_scripts/new_scripts/DeprojectAllGalaxies/astrohack_projections.pyc in get_ln_likelihood(self)
    422                 lnlike = 0.
    423                 for image in self.images:
--> 424                         lnlike += image.get_ln_likelihood()
    425                 return lnlike
    426 

/Users/dalyabaron/Copy/Astrophysics/python/new_scripts/new_scripts/DeprojectAllGalaxies/astrohack_projections.pyc in get_ln_likelihood(self)
    373 
    374         def get_ln_likelihood(self):
--> 375                 return -0.5 * self.get_chi_squared()
    376 
    377         def get_ln_prior(self):

/Users/dalyabaron/Copy/Astrophysics/python/new_scripts/new_scripts/DeprojectAllGalaxies/astrohack_projections.pyc in get_chi_squared(self)
    367 
    368         def get_chi_squared(self):
--> 369                 return numpy.sum(self.ivar * (self.data - self.get_synthetic()) ** 2)
    370 
    371         def get_chi_vector(self):

/Users/dalyabaron/Copy/Astrophysics/python/new_scripts/new_scripts/DeprojectAllGalaxies/astrohack_projections.pyc in get_synthetic(self)
    323                         if self.synthetic != 0.0:
    324                                 self.synthetic = 0
--> 325                         self.construct_synthetic()
    326                 return self.synthetic
    327 

/Users/dalyabaron/Copy/Astrophysics/python/new_scripts/new_scripts/DeprojectAllGalaxies/astrohack_projections.pyc in construct_synthetic(self, xi_hat, eta_hat)
    364 		self._add_to_synthetic(self.galaxy.render_2d_image(xi_hat, eta_hat, xs, ys,
    365                                                intensity=self.parameters['intensity'],
--> 366 				               psf=self.psf.rescale(self.parameters['scale'])))
    367 
    368         def get_chi_squared(self):

/Users/dalyabaron/Copy/Astrophysics/python/new_scripts/new_scripts/DeprojectAllGalaxies/astrohack_projections.pyc in render_2d_image(self, xi_hat, eta_hat, xs, ys, intensity, psf)
    185                 if psf is not None:
    186                         mixture_2d = mixture_2d.convolve(psf)
--> 187                 densities_flatten = mixture_2d.render(positions_flatten)
    188                 densities = numpy.reshape(densities_flatten, X.shape)
    189                 return densities

/Users/dalyabaron/Copy/Astrophysics/python/new_scripts/new_scripts/DeprojectAllGalaxies/astrohack_projections.pyc in render(self, positions)
    137                 densities= numpy.zeros(N)
    138                 for k in range(self.K):
--> 139                         gaus_k = multivariate_normal(mean=self.mus[k], cov=self.fis[k])
    140                         pdf_k = gaus_k.pdf(positions)
    141                         densities += self.alphas[k] * pdf_k

/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/stats/_multivariate.pyc in __call__(self, mean, cov, allow_singular, seed)
    421         return multivariate_normal_frozen(mean, cov,
    422                                           allow_singular=allow_singular,
--> 423                                           seed=seed)
    424 
    425     def _logpdf(self, x, mean, prec_U, log_det_cov, rank):

/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/stats/_multivariate.pyc in __init__(self, mean, cov, allow_singular, seed)
    592         self.dim, self.mean, self.cov = _process_parameters(None, mean, cov)
    593         self.cov_info = _PSD(self.cov, allow_singular=allow_singular)
--> 594         self._dist = multivariate_normal_gen(seed)
    595 
    596     def logpdf(self, x):

/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/stats/_multivariate.pyc in __init__(self, seed)
    410     def __init__(self, seed=None):
    411         super(multivariate_normal_gen, self).__init__(seed)
--> 412         self.__doc__ = doccer.docformat(self.__doc__, docdict_params)
    413 
    414     def __call__(self, mean=None, cov=1, allow_singular=False, seed=None):

/Users/dalyabaron/.virtualenvs/astro/lib/python2.7/site-packages/scipy/misc/doccer.pyc in docformat(docstring, docdict)
     48     if not docdict:
     49         return docstring
---> 50     lines = docstring.expandtabs().splitlines()
     51     # Find the minimum indent of the main docstring, after first line
     52     if len(lines) < 2:

KeyboardInterrupt: