Skip to content
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

[REVIEW]: LaplaceInterpolation.jl: A Julia package for fast interpolation on a grid interpolation on a grid #3766

Closed
40 tasks done
whedon opened this issue Sep 27, 2021 · 58 comments
Assignees
Labels
accepted Julia Jupyter Notebook published Papers published in JOSS Python recommend-accept Papers recommended for acceptance in JOSS. review

Comments

@whedon
Copy link

whedon commented Sep 27, 2021

Submitting author: @lootie (Charlotte Haley)
Repository: https://github.com/vishwas1984/LaplaceInterpolation.jl
Version: v0.1.2
Editor: @VivianePons
Reviewer: @wkearn, @eviatarbach
Archive: 10.5281/zenodo.5942603

⚠️ JOSS reduced service mode ⚠️

Due to the challenges of the COVID-19 pandemic, JOSS is currently operating in a "reduced service mode". You can read more about what that means in our blog post.

Status

status

Status badge code:

HTML: <a href="https://joss.theoj.org/papers/00d8d848d3644d8ac98f746ad236a6e3"><img src="https://joss.theoj.org/papers/00d8d848d3644d8ac98f746ad236a6e3/status.svg"></a>
Markdown: [![status](https://joss.theoj.org/papers/00d8d848d3644d8ac98f746ad236a6e3/status.svg)](https://joss.theoj.org/papers/00d8d848d3644d8ac98f746ad236a6e3)

Reviewers and authors:

Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)

Reviewer instructions & questions

@wkearn & @eviatarbach, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:

  1. Make sure you're logged in to your GitHub account
  2. Be sure to accept the invite at this URL: https://github.com/openjournals/joss-reviews/invitations

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @VivianePons know.

Please start on your review when you are able, and be sure to complete your review in the next six weeks, at the very latest

Review checklist for @wkearn

✨ Important: Please do not use the Convert to issue functionality when working through this checklist, instead, please open any new issues associated with your review in the software repository associated with the submission. ✨

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the repository url?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@lootie) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
  • Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Software paper

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Does the paper have a section titled 'Statement of Need' that clearly states what problems the software is designed to solve and who the target audience is?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?

Review checklist for @eviatarbach

✨ Important: Please do not use the Convert to issue functionality when working through this checklist, instead, please open any new issues associated with your review in the software repository associated with the submission. ✨

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the repository url?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@lootie) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
  • Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Software paper

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Does the paper have a section titled 'Statement of Need' that clearly states what problems the software is designed to solve and who the target audience is?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?
@whedon
Copy link
Author

whedon commented Sep 27, 2021

Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @wkearn, @eviatarbach it looks like you're currently assigned to review this paper 🎉.

⚠️ JOSS reduced service mode ⚠️

Due to the challenges of the COVID-19 pandemic, JOSS is currently operating in a "reduced service mode". You can read more about what that means in our blog post.

⭐ Important ⭐

If you haven't already, you should seriously consider unsubscribing from GitHub notifications for this (https://github.com/openjournals/joss-reviews) repository. As a reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all reviews 😿

To fix this do the following two things:

  1. Set yourself as 'Not watching' https://github.com/openjournals/joss-reviews:

watching

  1. You may also like to change your default settings for this watching repositories in your GitHub profile here: https://github.com/settings/notifications

notifications

For a list of things I can do to help you, just type:

@whedon commands

For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:

@whedon generate pdf

@whedon
Copy link
Author

whedon commented Sep 27, 2021

Wordcount for paper.md is 931

@whedon
Copy link
Author

whedon commented Sep 27, 2021

Software report (experimental):

github.com/AlDanial/cloc v 1.88  T=0.50 s (95.3 files/s, 320080.5 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Jupyter Notebook                12              0         155843           1814
Julia                           21            346            163           1450
Markdown                         4            106              0            590
Python                           3            158            175            339
TeX                              1             11              0            116
YAML                             4              5              4            110
TOML                             3              3              0             44
-------------------------------------------------------------------------------
SUM:                            48            629         156185           4463
-------------------------------------------------------------------------------


Statistical information for the repository 'f3897dd68491f6e51dffaab6' was
gathered on 2021/09/27.
The following historical commit information, by author, was found:

Author                     Commits    Insertions      Deletions    % of changes
Charlotte Haley                 11          1063            421           95.25
Vishwas Rao                      3            52             22            4.75

Below are the number of rows from each author that have survived and are still
intact in the current revision:

Author                     Rows      Stability          Age       % in comments
Charlotte Haley             669           62.9          1.2               26.46
Vishwas Rao                   3            5.8          1.8                0.00

@whedon
Copy link
Author

whedon commented Sep 27, 2021

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@whedon
Copy link
Author

whedon commented Oct 11, 2021

👋 @wkearn, please update us on how your review is going (this is an automated reminder).

@whedon
Copy link
Author

whedon commented Oct 11, 2021

👋 @eviatarbach, please update us on how your review is going (this is an automated reminder).

@eviatarbach
Copy link

Before doing a more comprehensive review, I notice the example in the documentation has a few issues that prevent a user from running it, including:

  • Please indicate that one must install the TestImages.jl and Images.jl package.
  • Misspellings such as "TestImgaes" and "imgg"
  • Forgotten imports, such as Plots, Random, and Images
  • Undefined variables such as "holeyimage1"

@vishwas1984
Copy link

@eviatarbach : Thanks for these comments. We have updated our documentation with the suggested corrections.

@VivianePons
Copy link

Hi @eviatarbach and @wkearn can you update me on the review? Thanks!

@eviatarbach
Copy link

Hello @VivianePons, I was waiting for vishwas1984/LaplaceInterpolation.jl#3 to be resolved so that I can review the examples.

Also, I am not able to modify the checklist. It seems I may have not clicked the invitation link in time and it expired, sorry! Do you know how to fix this?

@VivianePons
Copy link

@whedon re-invite @eviatarbach as reviewer

@whedon
Copy link
Author

whedon commented Nov 16, 2021

OK, the reviewer has been re-invited.

@eviatarbach please accept the invite by clicking this link: https://github.com/openjournals/joss-reviews/invitations

@lootie
Copy link

lootie commented Dec 6, 2021

Hi, is there any way to add @vishwas1984 to the watchlist for this thread?

@vishwas1984
Copy link

@VivianePons : It has been about two months and we have not gotten any feedback. Could you please take a look into this?

@VivianePons
Copy link

Indeed,

please, @eviatarbach and @wkearn can you update us?

Thanks

@eviatarbach
Copy link

Apologies, I did not see that the notebook issue had been resolved. I commend the authors on the great contribution: having a fast interpolation algorithm available will be of interest to many communities. The checklist requirements have to be fully satisfied before it can be published, though. My comments follow.

First of all, the size of the repository is quite big, at 185 MB, due to git blobs (.git/objects/pack alone is 166 MB). Maybe consider using git-filter-branch or something like BFG.

Notebooks

Is there a smaller example you can use for the 3D interpolation in JOSS_Companion_Notebook? When I tried it, it consumed over 5 GB of RAM, which would be too much for many personal computers. At least add a warning to the notebook about this.

Documentation

Please add information about the notebooks to the documentation.

In addition, you are missing the following checklist items from the documentation:

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Paper

  1. Please clarify the time complexity. Is the algorithm is linear in the number of points to be interpolated? In the volume of the space?
  2. Please add a performance section, showing the scaling of the Matérn vs. Laplace interpolation.
  3. Please add citations to the other packages you reference in the paper, not just links. Also, the link for gridinterppy is dead.

Minor edits:
L26: "d— dimensions" → "d dimensions"
L27: The j index is not italicized.
L36: "interpolation to solve" → "interpolation to be solved"
L63: "wrapperr" → "wrapper"

@wkearn
Copy link

wkearn commented Jan 19, 2022

My apologies on the delay. Thanks for the updates to the installation instructions and notebooks. Everything seems to work properly now.

This package provides an implementation of a fast algorithm for interpolation on grids of arbitrary dimensions. There are other Julia packages that do various kinds of interpolation, which are cited in this paper, though none as far as I know that implement this particular algorithm.

I don't necessarily think that this should hold up the review, but the examples in the documentation and notebooks of restoring images are somewhat contrived. Maybe there are other applications that would do a better job of illustrating the strength of this interpolation approach that could be included in the documentation?

As @eviatarbach stated, there is no statement of need in the documentation, though you could easily add it. There are, however, automated tests (Pkg.test("LaplaceInterpolation") runs them), and a brief set of contributing instructions in the README. It seems like you have already made the changes to the citations and typos.

@lootie
Copy link

lootie commented Jan 20, 2022

@whedon generate pdf

@whedon
Copy link
Author

whedon commented Jan 20, 2022

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@vishwas1984
Copy link

@eviatarbach
Thanks for the detailed comments. I have used BFG as suggested to remove the blobs and the size of the repo after blob deletion is 8.27 MB (from this site https://citizendot.github.io/gh-info/). Thanks a lot for the suggestion.

Notebooks:
I have added a toy example for demonstrating 3D case in the notebook and for this problem the memory requirements are much lesser. I have left the previous example as is and I have added a warning about system requirements.
My Colleague @lootie will address the remaining reviews.

@lootie
Copy link

lootie commented Jan 20, 2022

@eviatarbach Thank you for your detailed comments. I have made the changes to the paper that you've suggested, and have recompiled the paper. Additional comments below.

Documentation

The docs/src/index.md file contains the text “The Notebooks folder contains this and other examples.“, but has been placed under its own heading, per your suggestion, for visibility.

Checklist items
A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?

The statement of need is located in the paper.md itself under its own heading. Thank you.

Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?

The testfile for the software is located in tests/runtests.jl and can be run from the Julia REPL using
pkg> test LaplaceInterpolation

Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Thank you. The community guidelines are in the README.md file on the github page under “Contributing”, and are as follows: “Contributions are welcome in the form of issues, pull requests. Support questions can be directed to vhebbur at anl.gov.”

The performance comparison I have added to the paper, as per your suggestion, can be reproduced using the notebook, included (Notebooks/Another_1D_Example.ipynb).

@wkearn Thank you for your input on the examples we’ve given. We developed this package in order to interpolate missing data from volumetric images of X-ray scattering. Specifically, an implementation on a 1000x1000x1000 image with identical spherical punches totaling about 1/10 of the dataset was taking half an hour on a local cluster using the astropy.convolve algorithm. Given the number of such datasets, and the desire to process the volumes as a data stream, we wrote this package. This basic use case is shown on the README page, and this algorithm has been written into a much larger software suite for processing X-ray images. While this example is important to us, we recognize that Laplace interpolation can be used by a much broader set - especially those interested in 2D images, and one finds more and more examples of 3D and 4D gridded datasets (geophysical data and space-time data), that we decided to make the package extensible to arbitrary dimensions.

@whedon
Copy link
Author

whedon commented Feb 2, 2022

OK. 10.5281/zenodo.5942603 is the archive.

@VivianePons
Copy link

@whedon set v0.1.2 as version

@whedon
Copy link
Author

whedon commented Feb 2, 2022

OK. v0.1.2 is the version.

@VivianePons
Copy link

Congratulation @lootie and @vishwas1984 I am moving the paper to acceptance! Thank you to both reviewers @wkearn, and @eviatarbach

@VivianePons
Copy link

@whedon recommand-accept

@whedon
Copy link
Author

whedon commented Feb 2, 2022

I'm sorry human, I don't understand that. You can see what commands I support by typing:

@whedon commands

@VivianePons
Copy link

@whedon recommend-accept

@whedon whedon added the recommend-accept Papers recommended for acceptance in JOSS. label Feb 2, 2022
@whedon
Copy link
Author

whedon commented Feb 2, 2022

Attempting dry run of processing paper acceptance...

@whedon
Copy link
Author

whedon commented Feb 2, 2022

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1016/c2013-0-12559-7 is OK
- 10.1137/1.9781611970104 is OK
- 10.1007/s00211-011-0391-2 is OK
- 10.1007/978-1-4614-0772-0_4 is OK
- 10.1080/10618600.2019.1652616 is OK
- 10.1007/978-3-642-24785-9_3 is OK
- 10.1051/0004-6361/201322068 is OK
- 10.3847/1538-3881/aabc4f is OK
- 10.1038/s41592-019-0686-2 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@whedon
Copy link
Author

whedon commented Feb 2, 2022

👋 @openjournals/joss-eics, this paper is ready to be accepted and published.

Check final proof 👉 openjournals/joss-papers#2924

If the paper PDF and Crossref deposit XML look good in openjournals/joss-papers#2924, then you can now move forward with accepting the submission by compiling again with the flag deposit=true e.g.

@whedon accept deposit=true

@vishwas1984
Copy link

Thank you @VivianePons for handling this paper. Thanks also to @eviatarbach and @wkearn for helpful comments.

@vishwas1984
Copy link

@VivianePons : I checked the proofs and I okay the paper.

@whedon
Copy link
Author

whedon commented Feb 3, 2022

I'm sorry @lootie, I'm afraid I can't do that. That's something only editor-in-chiefs are allowed to do.

@lootie
Copy link

lootie commented Feb 3, 2022

👍

@Kevin-Mattheus-Moerman
Copy link
Member

@lootie @VivianePons I have read the paper and inspected the Zenodo archive and all seems in order. I will now proceed to process this submission for acceptance.

@Kevin-Mattheus-Moerman
Copy link
Member

@whedon accept deposit=true

@whedon whedon added the accepted label Feb 4, 2022
@whedon
Copy link
Author

whedon commented Feb 4, 2022

Doing it live! Attempting automated processing of paper acceptance...

@whedon whedon added the published Papers published in JOSS label Feb 4, 2022
@whedon
Copy link
Author

whedon commented Feb 4, 2022

🐦🐦🐦 👉 Tweet for this paper 👈 🐦🐦🐦

@whedon
Copy link
Author

whedon commented Feb 4, 2022

🚨🚨🚨 THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! 🚨🚨🚨

Here's what you must now do:

  1. Check final PDF and Crossref metadata that was deposited 👉 Creating pull request for 10.21105.joss.03766 joss-papers#2927
  2. Wait a couple of minutes, then verify that the paper DOI resolves https://doi.org/10.21105/joss.03766
  3. If everything looks good, then close this review issue.
  4. Party like you just published a paper! 🎉🌈🦄💃👻🤘

Any issues? Notify your editorial technical team...

@Kevin-Mattheus-Moerman
Copy link
Member

Congratulations on this publication @lootie

Thank you @wkearn and @eviatarbach for your review efforts, and thanks @VivianePons for editing!

@whedon
Copy link
Author

whedon commented Feb 4, 2022

🎉🎉🎉 Congratulations on your paper acceptance! 🎉🎉🎉

If you would like to include a link to your paper from your README use the following code snippets:

Markdown:
[![DOI](https://joss.theoj.org/papers/10.21105/joss.03766/status.svg)](https://doi.org/10.21105/joss.03766)

HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.03766">
  <img src="https://joss.theoj.org/papers/10.21105/joss.03766/status.svg" alt="DOI badge" >
</a>

reStructuredText:
.. image:: https://joss.theoj.org/papers/10.21105/joss.03766/status.svg
   :target: https://doi.org/10.21105/joss.03766

This is how it will look in your documentation:

DOI

We need your help!

Journal of Open Source Software is a community-run journal and relies upon volunteer effort. If you'd like to support us please consider doing either one (or both) of the the following:

@tarleb
Copy link

tarleb commented Sep 21, 2022

Hi all! We are working towards a more unified archive of all JOSS papers. In this process, I noted that the Markdown sources for this paper contain markup to include an image that does not exist, namely images/Onedim_GP.png. It is therefore missing from the published PDF. It seems that the image was supposed to be a combination of three files in the figures folder. For best results, the figure caption should be given as the image description, as in ![figure caption, possibly spanning many lines](figures/Onedim_FP.png). @lootie could you take a look?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted Julia Jupyter Notebook published Papers published in JOSS Python recommend-accept Papers recommended for acceptance in JOSS. review
Projects
None yet
Development

No branches or pull requests

8 participants