Loading DP0.2 images with Datalink on tutorial

In Section 4.1.2 Access via Datalink URL from tutorial 02c_Image_Queries_with_TAP, I’m encountering the following error when trying to obtain the new link. I didn’t make any changes to the tutorial code, and it seems that the resource is not votable.

I was also wondering: what are the restrictions on which images can be accessed this way? Are there specific conditions under which an image is not considered votable?

dl_results = DatalinkResults.from_result_url(results_0['access_url'],
                                             session=auth_session)
---------------------------------------------------------------------------
E19                                       Traceback (most recent call last)
Cell In[106], line 1
----> 1 dl_results = DatalinkResults.from_result_url(results_0['access_url'],
      2                                              session=auth_session)

File /opt/lsst/software/stack/conda/envs/lsst-scipipe-10.0.0/lib/python3.12/site-packages/pyvo/dal/adhoc.py:838, in DatalinkResults.from_result_url(cls, result_url, session, original_row)
    836 @classmethod
    837 def from_result_url(cls, result_url, *, session=None, original_row=None):
--> 838     res = super().from_result_url(result_url, session=session)
    839     res.original_row = original_row
    840     return res

File /opt/lsst/software/stack/conda/envs/lsst-scipipe-10.0.0/lib/python3.12/site-packages/pyvo/dal/query.py:302, in DALResults.from_result_url(cls, result_url, session)
    295 """
    296 Create a result object from a url.
    297 
    298 Uses the optional session to make the request.
    299 """
    300 session = use_session(session)
    301 return cls(
--> 302     votableparse(cls._from_result_url(result_url, session).read),
    303     url=result_url,
    304     session=session)

File /opt/lsst/software/stack/conda/envs/lsst-scipipe-10.0.0/lib/python3.12/site-packages/astropy/io/votable/table.py:164, in parse(source, columns, invalid, verify, chunk_size, table_number, table_id, filename, unit_format, datatype_mapping, _debug_python_based_parser)
    159     config["filename"] = source
    161 with iterparser.get_xml_iterator(
    162     source, _debug_python_based_parser=_debug_python_based_parser
    163 ) as iterator:
--> 164     return tree.VOTableFile(config=config, pos=(1, 1)).parse(iterator, config)

File /opt/lsst/software/stack/conda/envs/lsst-scipipe-10.0.0/lib/python3.12/site-packages/astropy/io/votable/tree.py:4339, in VOTableFile.parse(self, iterator, config)
   4337             break
   4338         else:
-> 4339             vo_raise(E19, (), config, pos)
   4340 config.update(self._get_version_checks())
   4342 tag_mapping = {
   4343     "PARAM": self._add_param,
   4344     "RESOURCE": self._add_resource,
   (...)
   4350     "GROUP": self._add_group,
   4351 }

File /opt/lsst/software/stack/conda/envs/lsst-scipipe-10.0.0/lib/python3.12/site-packages/astropy/io/votable/exceptions.py:124, in vo_raise(exception_class, args, config, pos)
    122 if config is None:
    123     config = {}
--> 124 raise exception_class(args, config, pos)

E19: None:1:0: E19: File does not appear to be a VOTABLE

Thank you!

Hi, as noted in the Data Services news and (now removed) data.lsst.cloud banner, DP0.2 data products were offline due to a failure of the storage system at the Rubin US Data Facility at SLAC. The good news is that this outage has now been resolved and your code should now work again. Sorry for the trouble.