Use the conesearch to grab all HST observations within a certain radius of the virgo cluster center (url=http://archive.stsci.edu/hst/search.php?, radius=.2, RA=15*12.5, DEC=12.5). Filter out all target names that don't start with an NGC name or a Messier name. Build a dictionary keyed by those names that contain a list of all HST observations (e.g., the root names) using that target name. Print the contents of the dictionary out. Note that at this radius, sometimes the conesearch can result in a timeout. Simply try again a few times until it works
Do a 3x3 overlapping grid (radius 0.15, offsets of 0.1) of conesearches around the center to get around the timeout problem of using a bigger radius. Make a list of all unique observations (rootnames only) using either a dictionary keyed on Dataset names (or even easier, using the python set data structure and the union method: http://docs.python.org/2/library/stdtypes.html#set-types-set-frozenset). With the dictionary approach, see if the dictionary has that key already, and if not, add it. The keys when done are a non-redundant set of Datasets.
From the OPO site page for "A Multi-Wavelength View of Radio Galaxy Hercules A" (http://hubblesite.org/newscenter/archive/releases/2012/47/image/) Download the individual color images from Hubble and the VLA (the extra large jpg versions that are 1280x909 pixels), read them into python, turn them into black and white monochromatic images by summing the rgb components, and then combine them making the hubble image blue, and the VLA image green, and write out as a jpg file. In this case note that the fromarray method is expecting a byte image (numpy.uint8), but the summing process should be done as a larger type so that overflow doesn't happen, and that you should normalize the results for each input image to have a maximum of 255 since it has to be turned back into byte arrays.