Your comments

Dear user,

There are two different options to upload the list of targets: 

  • You can upload your list of targets here to ensure that the cutout option will be already pre-selected in the Download Portal when downloading the data. (option number one in screenshot)

  • If you upload your target list from the main window, the functionality is the same except for the need to select the cutout option in the Download Portal explicitly. Data volumes displayed in the download portal reflect the data reduction thanks to cutouts in an approximate fashion.

You can get more information clicking on on the scissors as shown in the screenshot below (option number 2), and more extended explanation if you click on "see dedicated help topic" (option number 3) on the displayed window.

Once you are in the download portal, regardless of targetlist or single target, one reason for the problem you're describing comes as a result from any search of (1d) spectra by position (+radius) because there is nothing to cutout from the 1-d spectrum based on the given positional constraint. Therefore the cutout service is disabled (=greyed out).

I hope this answers your question.

Best regards,

Archive Science Group

Dear Andrew,
The information that you should use the datalink service to get to the ancillary files is provided in the programmatic overview page: but I fully agree that that is not enough. I will publish a script for that.
Thanks for pointing this out. In the meantime...

Here I provide you preliminary snippets of the code necessary to do that, with explanations.
As said, it is the datalink service that allows you to find all kinds of files related to the input one.The datalink response for a HARPS calibrated spectrum contains, among others, the ancillary file you want to download (the tar ball).
As an example, try:

The ancillary files can be identified by the "semantics" field which must be set to "#auxiliary".
In python:
import as eso

# The
# is published here:

# Let's get the access_url of 3 HARPS products:
query = """SELECT top 3 access_url from ivoa.ObsCore where obs_collection='HARPS'"""
res =


# Let's loop through those 3, and for each of them loop through its #auxiliary entries (the tar ball is the only #auxiliary for an HARPS product anyway):
for rec in (res):
datalink = vo.dal.adhoc.DatalinkResults.from_result_url(rec['access_url'], session=session)
ancillaries = datalink.bysemantics('#auxiliary')
for anc in ancillaries: # for each ancillary, get its access_url, and use it to download the file
# other useful info available: print(anc['eso_category'], anc['eso_origfile'], anc['content_length'], anc['access_url'])
status_code, filepath = eso.downloadURL(anc['access_url'], session=session)
if status_code == 200:
print("File {0} downloaded as {1}".format(anc['eso_origfile'], filepath))

The result is:

File HARPS.2006-08-09T05:48:52.136_DRS_HARPS_3.5.tar downloaded as ./ADP.2014-09-16T11:08:02.037.tar
File HARPS.2006-01-30T08:42:04.135_DRS_HARPS_3.5.tar downloaded as ./ADP.2014-09-16T11:04:44.533.tar
File HARPS.2006-07-30T07:45:53.333_DRS_HARPS_3.5.tar downloaded as ./ADP.2014-09-16T11:04:48.567.tar

If you prefer to download the tar ball with its original name, then add "filename=anc['eso_origfile']" as in:
status_code, filepath = eso.downloadURL(anc['access_url'], filename=anc['eso_origfile'], session=session)
and you'll obtain:

File HARPS.2006-08-09T05:48:52.136_DRS_HARPS_3.5.tar downloaded as ./HARPS.2006-08-09T05:48:52.136_DRS_HARPS_3.5.tar
File HARPS.2006-01-30T08:42:04.135_DRS_HARPS_3.5.tar downloaded as ./HARPS.2006-01-30T08:42:04.135_DRS_HARPS_3.5.tar
File HARPS.2006-07-30T07:45:53.333_DRS_HARPS_3.5.tar downloaded as ./HARPS.2006-07-30T07:45:53.333_DRS_HARPS_3.5.tar

Thanks a lot for reporting the absence of examples on this!

Alberto Micol

ESO Archive Science Group

The walk-through on how to produce the Figure above using the programmatic access to the catalogue is illustrated in this forum entry (it requires the installation of the un-official ESOAsg python package).

Dear Enrique,

   many thanks for using the ESO archive services.

There are different ways to achieve your goal:

  • If you are interested in a specific data collection, for instance the X-Shooter Spectral Library (XSL), you should refer to the associated release description, that contains information on how the data are reduced and the level of the calibration achieved.
  • It is possible to run a TAP query to obtain the list of all calibrated data by setting a WHERE condition on the o_calib_status column and requiring spectrum as dataproduct_type:
    SELECT TOP 10 * 
    FROM ivoa.ObsCore 
        o_calib_status = 'absolute' AND 
        dataproduct_type = 'spectrum'
  • If you are interested in a specific target, you can take advantage of the unofficial ESOAsg python package. For instance, if you want to collect all calibrated spectra present in the ESO archive associated with the star HD 057060, you can run:

    from ESOAsg import archive_observations
    from astropy.coordinates import SkyCoord
    # Define star position
    star_position = SkyCoord.from_name('HD 057060')
    # Get information on all spectra collected within 5" from the star
    eso_spectra = archive_observations.query_from_radec(star_position, radius=5., columns=['dp_id', 'instrument_name', 'o_calib_status'], data_types='spectrum')
    # Select absolute flux calibration
    cond_absolute = (eso_spectra['o_calib_status'] == 'absolute')
    # Download the data['dp_id'][cond_absolute])
    Note that this is equivalent to run this TAP query and download the retrieved dp_ids

Please let us know if this answer your question. We can also provide a more tailored feedback, but we will need some more details on the goal you need to achieve.

Enjoy your data!

The ESO Archive Science Group


It is also possible to explore the catalogue via the Archive Science Portal. This interface allows users to visualize the distributions of different columns in a catalogue tile in a comprehensive page, by clicking on the action Dataset details. An example of this is shown in the image above.


Dear User,

Many thanks for using the ESO Archive Services.

There are several ways to access the night logs depending on your specific needs.

Details on a user's specific run can be collected via the night log generator. After logging-in in the ESO User Portal, you will be able to download (in PDF format) information on, e.g., weather conditions, daytime calibrations, and observations executed, associated with your observing run.

Alternatively, it is possible to have an overview of all data collected during a night at a specific telescope by exploiting the programmatic access to the archive science portal. For instance, if you are interested data collected with Antu (i.e., ‘ESO-VLT-U1’) during the night of the 15th of March 2021, you can run the following query:

SELECT * FROM dbo.raw
WHERE (date_obs LIKE '2021-03-15%' OR date_obs LIKE '2021-03-16%')
AND telescope = 'ESO-VLT-U1'

Similarly, raw data collected during a specific night can be retrieved at the Observational Raw Data Query Form. From there, it is possible to access weather information associated to a given (science) observation both for La Silla and for Paranal.

In case you are interested in having more information related to a specific night, you can always contact us, and we will be happy to provide a list of target observed (unless protected), observing conditions, etc.

Please let us know if this answer your question. If not, we kindly ask you to provide more details on what you would like to achieve with this, so we will be able to provide a more tailored feedback.

All the best,

the ESO Archive Science Group


Correct, one other possibility is that after selecting your data via the Science Portal, you can chose the option of downloading the shell script, as shown in the image, which will download the data.

You just need to make the script executable (chmod u+x ) and run it from the command line. Note: the download script requires wget to be installed on your computer.

I hope this helps.

Dear Thomas,

   many thanks for using the ESO forum. It is refreshing to see interest in disseminating astronomy at schools. If you are interested, more information on ESO outreach activities can be found in the ESO Supernova website.


    In the ESO website you can use our search for images at this link (that is poining to images of the Crux constellation). Alternatively, you can have a glance on the entire sky using our Archive Science Portal. Here you can navigate to the region of the sky you prefer either by introducing coordinates or by simply scrolling with the mouse (and you can also see astronmical images taken with ESO telescopes).

    An other website you might be interested in is: google-sky (the link currently points to the big-dipper constellation).

All the best,

the ESO Archive Science Group

Dear user,

   many thanks for using the ESO archive system!

To access to XSHOOTER data programmatically you can use a query similar to this one:

    target_name, dp_id, s_ra, s_dec, t_exptime, em_min, em_max, 
    dataproduct_type, instrument_name, obstech, abmaglim,
    proposal_id, obs_collection
    (INTERSECTS(CIRCLE('ICRS',109.66824871,-24.55869773,5./3600), s_region)=1 OR
     INTERSECTS(CIRCLE('ICRS',279.729582,6.27016,5./3600), s_region)=1
    instrument_name LIKE 'XSHOO%'

where you can include a list of INTERSECTS conditions connected with the OR logic (see these HOWTOs for further details). With this, however, you will still hit a limit in the number of objects to be queried. This is due to the maximum length of the url that could be sent to the TAP service.

It is not possible to overcome the 1000 object limit in the Archive Science Portal. If splitting your list in groups containing <1000 items each is not an option for you, an alternative can be found in this forum page. Here with provide a walk-through on how to get data given a list of star names with python. This requires the installation of the unofficial ESOAsg python package.

Enjoy your data!