-
-
Notifications
You must be signed in to change notification settings - Fork 420
Access to NOIRLab Astro Data Archive #3359
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
TO DO items identified (i.e. before even starting the review process):
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3359 +/- ##
==========================================
+ Coverage 70.07% 70.20% +0.13%
==========================================
Files 232 234 +2
Lines 19893 19990 +97
==========================================
+ Hits 13940 14034 +94
- Misses 5953 5956 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Note to self: |
You also need |
@keflavich @bsipocz this is ready for first-pass review. I'm having some trouble with the doc build:
I've tried to set up the title levels similar to other packages, such as sdss. I'm also looking for advice on whether further application of |
PS, the |
Thanks. I need to get back to the ESO review first, but put this on the list now, too. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We did a partial review with some comments, I'm coming back to finish this later this week so no need to address any of these yet.
__all__ = ['NOIRLab', 'NOIRLabClass'] # specifies what to import | ||
|
||
|
||
@async_to_sync |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We may not want to use async_to_sync
any more, see further comments about the async_job
kwarg
rows = [[row[n] for n in names] for row in response_json[1:]] | ||
return astropy.table.Table(names=names, rows=rows) | ||
|
||
def service_metadata(self, hdu=False, cache=True): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this an end user method or should rather be something private?
response = self._request('GET', url, timeout=self.TIMEOUT, cache=cache) | ||
return response.json() | ||
|
||
def query_region(self, coordinate, radius=0.1, hdu=False, cache=True): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use mandatory kwargs for optional parameter
def query_region(self, coordinate, radius=0.1, hdu=False, cache=True): | |
def query_region(self, coordinate, *, radius=0.1, hdu=False, cache=True): |
def query_region_async(self, coordinate, radius=0.1, hdu=False, cache=True): | ||
"""Query for NOIRLab observations by region of the sky. | ||
|
||
Given a sky coordinate and radius, returns a `~astropy.table.Table` | ||
of NOIRLab observations. | ||
|
||
Parameters | ||
---------- | ||
coordinate : :class:`str` or `~astropy.coordinates` object | ||
The target region which to search. It may be specified as a | ||
string or as the appropriate `~astropy.coordinates` object. | ||
radius : :class:`str` or `~astropy.units.Quantity` object, optional | ||
Default 0.1 degrees. | ||
The string must be parsable by `~astropy.coordinates.Angle`. The | ||
appropriate `~astropy.units.Quantity` object from | ||
`~astropy.units` may also be used. | ||
hdu : :class:`bool`, optional | ||
If ``True`` return the URL for HDU-based queries. | ||
cache : :class:`bool`, optional | ||
If ``True`` cache the result locally. | ||
|
||
Returns | ||
------- | ||
:class:`~requests.Response` | ||
Response object. | ||
""" | ||
self._validate_version() | ||
ra, dec = coordinate.to_string('decimal').split() | ||
url = f'{self._sia_url(hdu=hdu)}?POS={ra},{dec}&SIZE={radius}&VERB=3&format=json' | ||
response = self._request('GET', url, timeout=self.TIMEOUT, cache=cache) | ||
# response.raise_for_status() | ||
return response |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We may want to have async as a kwarg instead and not have two separate methods. See how we do this in some of the other modules e.g. in cadc
or ipac.irsa
(or the esa modules).
# response.raise_for_status() | ||
return response | ||
|
||
def core_fields(self, hdu=False, cache=True): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How would you feel about having just one method for these three with a kwarg for 'core', 'aux', and 'categoricals'? e.g. list_fields(...)
@bsipocz, thank you, the suggestions all look good so far, but given my schedule it will be easier to address them all when you're done. |
Yes, totally understandable. I really just submitted this half baked review as that is how far we got during the review tutorial during the summer school I was teaching at. I'll get back to the rest later and will write up an actually usable summary, as there are a couple of things that will need to be fixed while the rest is really just some potential follow-up topics. And again, thanks for working on this, getting a working noirlab module will be superb! |
This PR closes #1701.
The initial commit simply restores the NOIRLab files to the state and content they were when #1701 was last worked on. Further work and testing will be needed to meet astroquery standards.