Aldo asked:

"I am quite new to python and trying to convert my old IDL scripts. In particular I'm interested in cross-correlating source catalogs: is anything already publicly available on this problem?"

To get this started, I'll comment that I think the poster is looking for cross-correlation based on positional separation (match within 1 arcsec).   I do not know of a full fledged script but among the coordinate resources listed at, I was able to easily calculate angular separations using the astLib and coords packages.

# using astLib 

from astLib.astCoords import calcAngSepDeg as gcirc

theta1c = [83.81860444,-5.38969611]
theta1b = [83.817270,-5.3853220]

print '\nastLib.astCoords'
print gcirc(*theta1c+theta1b),'degrees'
print gcirc(*theta1c+theta1b)*3600.,'arcsec'
print gcirc(*theta1c+theta1b)*3600. < 20.

# Results:
# astLib.astCoords
# 0.00457141885429 degrees
# 16.4571078754 arcsec
# True

# using coords

import coords

print '\ncoords'
ptheta1c = coords.Position(tuple(theta1c))
ptheta1b = coords.Position(tuple(theta1b))

print ptheta1c.angsep(ptheta1b)
print ptheta1c.angsep(ptheta1b).arcsec(),'arcsec'
print ptheta1c.within(ptheta1b,20,units='arcsec')

# Results
# coords
# 0.004571 degrees
# 16.4571078405 arcsec
# True

print '\ncompare'
print gcirc(*theta1c+theta1b)*3600.,ptheta1c.angsep(ptheta1b).arcsec()
print 'delta: ', gcirc(*theta1c+theta1b)*3600.-ptheta1c.angsep(ptheta1b).arcsec()

# Results
# compare
# 16.4571078754 16.4571078405
# delta: 3.49091848761e-08

    10           6