<p>This is a hard way of tackling a relatively simple problem  that is unashamedly 2-D!  </p>

<p>If the objects you are looking for are as prominent as those in your figure, create the 2_d map for the data and then threshold it for a series of threshold levels: the highest thresholds pick out the brightest objects.  Any continuous projection like Aitoff or Hammmer will do, and to eliminate the edge problems, use rotations of the projection.  Segmented projections, like Healpix,  are good for data storage, but not necessarily ideal for data analysis.</p>

<p>If the map has poor signal to noise so that you are looking for objects in the murk of the noise, then some sophistication is required, maybe even some neural net algorithm.  However, you might take a look at the Planck data analysis on Sunyaev-Zeldovich galaxy clusters, the earliest of which is perhaps <a href="https://arxiv.org/abs/1101.2024" rel="nofollow noreferrer">https://arxiv.org/abs/1101.2024</a> (Paper VIII).  The subsequent papers refine and add to this.</p>

<p>(This should have been a comment but I lack the rep.)</p>
Pattern recognition on sphere (HEALPY based)
<p>I am using Tensorflow and Keras. Is there a possibility to achieve a proper pattern recognition for images on the surface of a sphere? I am using the (<a href="https://healpy.readthedocs.io/en/latest/" rel="nofollow noreferrer">Healpy framework</a>) to create my skymaps on which the pattern recognition should work. The problem is that these Healpy skymaps are one dimensional numpy arrays, thus, a compact sub-pattern may be distributed scattered over this 1d array. This is actually pretty hard to learn for a basic machine learning algorithm (i am thinking about a convolutional deep network).</p>

<p>A specific task in this context would be counting blobbs on the surface of a sphere (see attached <a href="https://i.stack.imgur.com/oGQLS.png" rel="nofollow noreferrer">image</a>). For this particular task the correct number would be 8. So I created 10000 skymaps (Healpy settings: nside=16 correpsonding to npix=3072) each with a random number of blobbs between 0 and 9 (thus 10 possibilities). I tried to solve this with the 1d Healpy array and a simple Feed Forward network:</p>

<pre><code>model = Sequential()
model.add(Dense(npix, input_dim=npix, init='uniform', activation='relu'))
model.add(Dropout(0.25))
model.add(Dense(10, init='uniform', activation='softmax'))
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

model.fit(skymaps, number_of_correct_sources, batch=100, epochs=10, validation_split=1.-train)
</code></pre>

<p>, however, after training with 10,000 skymaps the test set yielded an accuracy of only 38%. I guess that this will significantly increase when providing the real arrangement of the Healpy cells (as it appears on the sphere) instead of the 1d array only. In this case one may use a Convolutional network (Convolution2d) and operate as for the usual image recognition. Any ideas how to map the healpy cells properly in a 2d array or using a convolutional network directly on the sphere?</p>

<p>Thanks!</p>