-
Notifications
You must be signed in to change notification settings - Fork 18
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
Add WFC3 notebook 'wfc3_exception_report.ipynb' #102
Conversation
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
changes for PEP8 compliance
edits for PEP8 compliance
changes for PEP8 compiance
second markdown table in section 6.1 wasn't formatted correctly
removing the old environment installation instructions and replacing them with information about using the `requirements.txt` file
adding line breaks
@haticekaratay thank you for all your help. I've gotten everything taken care of and the notebook, readme, requirements, and docs under this branch (add_wfc3_exception_report_notebook) should be ready for final review. Please let me know if there's anything else I need to complete. |
@@ -116,18 +116,21 @@ | |||
"source": [ |
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.
Thanks for your work. I have a suggestion regarding the file paths. Replacing string concatenation with os.path.join
would be more robust and platform-independent way to handle file paths.
I also suggest providing feedback to user instead of silently passing.
I had this when working you can test and try out if this suits:
Make sure to import shutils also.
# Loop through exposure id for obsid in exp_ids: # make new directory to hold fits files - named by exposure id newdir = os.path.join(os.getcwd(), obsid.lower()) try: mkdir = os.mkdir(newdir) print(f'Making new directory {newdir}') except FileExistsError: print(f'Directory {newdir} already exists.') # Loop through to get FLTs, JIFs, and JITs for file_type in file_types: print(f'Working on getting {file_type} files for Exposure ID {obsid}') obs_table = Observations.query_criteria(obs_id=obsid.lower()) products = Observations.get_product_list(obs_table) filtered_products = Observations.filter_products(products, productSubGroupDescription=file_type, project='CALWF3') download_table = Observations.download_products(filtered_products, mrp_only=False) # For convenience move raws to cwd and remove empty download dir for file in download_table['Local Path']: filename = os.path.basename(file) new_file_path = os.path.join(newdir, filename) print(f'Moving {file} to {new_file_path}') os.rename(file, new_file_path)remove_dir = os.path.join('mastDownload', 'HST', filename[:9])
try:
os.rmdir(remove_dir)
print(f'Removing {remove_dir}')
except (OSError, FileNotFoundError):
print(f'Error removing directory {remove_dir}')
mast_dir = 'mastDownload'
# Check and remove mastDownload directory
if os.path.exists(mast_dir):
print(f'Removing {mast_dir} directory')
shutil.rmtree(mast_dir)
else:
print(f'{mast_dir} does not exist')
Reply via ReviewNB
@@ -116,18 +116,21 @@ | |||
"source": [ |
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.
Hi! Thank you very much, @bjkuhn, for your work on the updates.
As a reader I would suggest we include a message for missing keywords. And also we can read header once per extension, which should make it more efficient.
for ext in range(1, numexts+1): print("JIF Header Ext Number:", ext) print('-'*80) header = fits.getheader(jif_file, ext) for keyword in keywords: # try to display keyword because it may not be present details = header.get(keyword) if details is not None: print(f'{details}') else: print(f'Keyword {keyword} not found in extension {ext}')
Reply via ReviewNB
minor changes to make the code more robust and platform-independent
Thank you @haticekaratay! I have made the suggested changes. Please let me know if there's anything else I need to do for this notebook |
i added shutil to the imports but forgot to describe it in the import markdown table
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.
Thank you for your work and for updating the notebook based on the reviews.
Relevant Tickets
This notebook checklist has been made available to us by the Notebooks For All team.
Its purpose is to serve as a guide for both the notebook author and the technical reviewer highlighting critical aspects to consider when striving to develop an accessible and effective notebook.
The First Cell
<h1>
or# in markdown
).1., 2.,
etc. in Markdown).The Rest of the Cells
#
in Markdown) used in the notebook.Text
Code
Images
All images (jpg, png, svgs) have an image description. This could be
alt
property)alt
attribute with no value)Any text present in images exists in a text form outside of the image (this can be alt text, captions, or surrounding text.)
Visualizations
All visualizations have an image description. Review the previous section, Images, for more information on how to add it.
Visualization descriptions include
All visualizations and their parts have enough color contrast (color contrast checker) to be legible. Remember that transparent colors have lower contrast than their opaque versions.
All visualizations convey information with more visual cues than color coding. Use text labels, patterns, or icons alongside color to achieve this.
All visualizations have an additional way for notebook readers to access the information. Linking to the original data, including a table of the data in the same notebook, or sonifying the plot are all options.