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]: TopoPyScale: A Python Package for Hillslope Climate Downscaling #5059

Closed
editorialbot opened this issue Jan 10, 2023 · 67 comments
Closed
Assignees
Labels
accepted published Papers published in JOSS Python review TeX Track: 6 (ESE) Earth Sciences and Ecology

Comments

@editorialbot
Copy link
Collaborator

editorialbot commented Jan 10, 2023

Submitting author: @ArcticSnow (Simon Filhol)
Repository: https://github.com/ArcticSnow/TopoPyScale
Branch with paper.md (empty if default branch):
Version: v0.2.3
Editor: @hugoledoux
Reviewers: @dvalters, @arbennett
Archive: 10.5281/zenodo.8043606

Status

status

Status badge code:

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

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

@dvalters & @arbennett, your review will be checklist based. Each of you will have a separate checklist that you should update when carrying out your review.
First of all you need to run this command in a separate comment to create the checklist:

@editorialbot generate my checklist

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @hugoledoux 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

Checklists

📝 Checklist for @dvalters

📝 Checklist for @arbennett

@editorialbot
Copy link
Collaborator Author

Hello humans, I'm @editorialbot, a robot that can help you with some common editorial tasks.

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

@editorialbot commands

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

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

Software report:

github.com/AlDanial/cloc v 1.88  T=0.31 s (77.2 files/s, 20867.2 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                          17            893           1615           2608
SVG                              1              1              1            644
TeX                              1             32              0            372
Markdown                         2             48              0            175
YAML                             2              8             10             44
INI                              1              9              0             28
-------------------------------------------------------------------------------
SUM:                            24            991           1626           3871
-------------------------------------------------------------------------------


gitinspector failed to run statistical information for the repository

@editorialbot
Copy link
Collaborator Author

Wordcount for paper.md is 1038

@editorialbot
Copy link
Collaborator Author

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

OK DOIs

- 10.5194/gmd-15-1753-2022 is OK
- 10.3389/feart.2022.789332 is OK
- 10.5194/hess-23-4717-2019 is OK
- 10.5194/tc-2021-380 is OK
- 10.5194/esurf-2022-39 is OK
- 10.5194/gmd-2022-137 is OK
- 10.5194/gmd-8-3867-2015 is OK
- 10.5194/hess-25-4455-2021 is OK
- 10.1029/2018WR023903 is OK
- 10.5194/hess-23-4717-2019 is OK
- 10.5194/gmd-7-387-2014 is OK
- 10.5194/gmd-5-1245-2012 is OK
- 10.5194/gmd-15-1753-2022 is OK
- 10.5194/gmd-5-773-2012 is OK
- 10.1016/S0165-232X(02)00074-5 is OK
- 10.1002/qj.3803 is OK
- 10.1038/s41467-018-03629-7 is OK
- 10.1016/j.scitotenv.2022.154459 is OK
- 10.1029/2020GL088120 is OK
- 10.1038/s43017-021-00219-y is OK
- 10.1175/1520-0469(2004)061<1377:ALTOOP>2.0.CO;2 is OK
- 10.1175/JHM548.1 is OK
- 10.5194/gmd-7-2831-2014 is OK
- 10.1175/JHM-D-21-0070.1 is OK
- 10.5194/gmd-2022-127 is OK
- 10.5194/hess-2022-241 is OK
- 10.5334/jors.148 is OK
- 10.5281/zenodo.3509134 is OK
- 10.21105/joss.00884 is OK

MISSING DOIs

- 10.3389/feart.2022.789332 may be a valid DOI for title: A Downscaling Intercomparison Study: The Representation of Slope- and Ridge-Scale Processes in Models of Different Complexity

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

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

@dvalters
Copy link

dvalters commented Jan 17, 2023

Review checklist for @dvalters

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 https://github.com/ArcticSnow/TopoPyScale?
  • 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 (@ArcticSnow) 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
  • Data sharing: If the paper contains original data, data are accessible to the reviewers. If the paper contains no original data, please check this item.
  • Reproducibility: If the paper contains original results, results are entirely reproducible by reviewers. If the paper contains no original results, please check this item.
  • Human and animal research: If the paper contains original data research on humans subjects or animals, does it comply with JOSS's human participants research policy and/or animal research policy? If the paper contains no such data, please check this item.

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, who the target audience is, and its relation to other work?
  • 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?

@arbennett
Copy link

arbennett commented Jan 24, 2023

Review checklist for @arbennett

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 https://github.com/ArcticSnow/TopoPyScale?
  • 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 (@ArcticSnow) 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
  • Data sharing: If the paper contains original data, data are accessible to the reviewers. If the paper contains no original data, please check this item.
  • Reproducibility: If the paper contains original results, results are entirely reproducible by reviewers. If the paper contains no original results, please check this item.
  • Human and animal research: If the paper contains original data research on humans subjects or animals, does it comply with JOSS's human participants research policy and/or animal research policy? If the paper contains no such data, please check this item.

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, who the target audience is, and its relation to other work?
  • 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?

@hugoledoux
Copy link

@arbennett @dvalters just a reminder that we'd like to give feedback to the authors this month, if possible

@dvalters
Copy link

@hugoledoux apologies for the delay, will review today! :)

@dvalters
Copy link

Very interesting submission @ArcticSnow! I'm just having a few issues getting the example to run here, I wondered if you could point out where I might be going wrong: ArcticSnow/TopoPyScale#55

@ArcticSnow
Copy link

ArcticSnow commented Feb 22, 2023

Thank you @dvalters , please see my response in the issue.
I made a version release v0.2.0 today of the library. If you installed it yesterday, please make sure to either pull the repo (if installed in dev version), or update the install (if install the pip release). Also, git pull the example repository too.

@ArcticSnow
Copy link

In case you are still testing the library, a key bug (introduced the last month) was identified and corrected this week. I hope this will not hinder your appreciation of the library, if using the latest version (v0.2).

@dvalters
Copy link

dvalters commented Mar 10, 2023

Thanks @ArcticSnow I will aim to have the review completed by early next week, So far I don't envisage any significant changes or revisions, only minor comments. :)

Edit: Any comments/feedback I had were resolved in the repository issue tracker by the authors)

@hugoledoux
Copy link

@dvalters any progress on the review?

@dvalters
Copy link

dvalters commented Apr 5, 2023

All good from me. I was able to make it work in the end and see the results reproduced.

@arbennett
Copy link

Hi @ArcticSnow - apologies for being so delayed on this, but I was able to finish up my review today. Overall I think this is a nice library that brings tons of value to the table for making climate/reanalysis data more actionable. Thank you for the submission, I could see myself using this in the future! Below is my formal review. I'll open up a few issues on the documentation and examples repositories that correspond to these comments.

Overview

TopoPyScale is a python package for downscaling meteorological data to fine spatial resolutions. It is built on many of the standard toolkits being used in the geosciences, and implements the core downscaling routines from a previous methodology, TopoScale. TopoPyScale provides a computationally frugal and streamlined workflow, which are both invaluable features for enabling many modeling studies. Additionally the authors provide numerous options for input/output formatting and tweaking the core algorithms.

I found TopoPyScale relatively straightforward to get up and running, but difficult to actually use due to a lack of documentation and incomplete examples. Overall I think this tool would be very valuable for anyone who knows how to use it, so after some changes to the documentation and the examples I would find it suitable for publication in JOSS.

Major comments

The majority of my comments arose when actually using TopoPyScale on the examples. The only large change I would suggest making to the paper would be a table listing what variables are able to be downscaled, if such a limitation exists.

  • Variables in the output are lacking metadata when written as netcdf files.
  • The examples have some hard coding of paths and other things, and are lacking documentation in a way that made it difficult for me to get up and running. I would try to possibly streamline this experience and possibly even get a binder link set up so that people just exploring TopoPyScale can try out the examples directly in the browser.
  • Example scripts for norway_finse runs both the distributed and pointwise downscaling, but they overwrite eachother.
  • It wasn't clear to me how to get the full gridded product back out rather than just points. I went looking around in the examples and docs but couldn't readily find information about it. More generally I felt like there were many options in the configuration, but it was hard to know what the effects of changing some of them would be. I see there is some listing of options in the example yaml file in the documentation but I found it hard to scroll around there, and would find it much easier to search documentation where options are explicitly enumerated and described.
  • There appear to be no tests, but it seems like with the examples something like a benchmark dataset could be included to make sure that the model operates properly?

Minor comments

  • In compare_obs.ipynb in TopoPyScale_examples the matplotlib styles are not installed by default, so I would remove this.
  • Also the metno*.pckl files for compare_obs.ipynb do not seem to exist in the examples.
  • On https://topopyscale.readthedocs.io/en/latest/06_examples/, under warning 2:
    "a large amount of verbose" -> "a large amount of verbose output"

@ArcticSnow
Copy link

@arbennett , @dvalters ,
Thank you for your time reviewing and suggesting constructive changes to the paper and the software. I am currently in the field for most of April, and will accomplish all suggestions in May for an updated version.

@ArcticSnow
Copy link

ArcticSnow commented May 13, 2023

Revision in Progress

Minor comments:

  • In compare_obs.ipynb in TopoPyScale_examples the matplotlib styles are not installed by default, so I would remove this. -> line removed
  • Also the metno.pckl files for compare_obs.ipynb do not seem to exist in the examples.* -> added to the github repo here
  • On https://topopyscale.readthedocs.io/en/latest/06_examples/, under warning 2:
    "a large amount of verbose" -> "a large amount of verbose output"
    -> Corrected

Major comments:

  • Example scripts for norway_finse runs both the distributed and pointwise downscaling, but they overwrite eachother. -> now those are split into two scripts pipeline_spatial.py and pipeline_point.py. pipeline_testing.py was also added to run a test in github Action.
  • There appear to be no tests, but it seems like with the examples something like a benchmark dataset could be included to make sure that the model operates properly? -> Github Action script test_topopyscale.yml setup a VE from environment.yml file, lint the package with Flake8, clone the latest ex1_norway_finse example, and finally run the script pipeline_test.py. This is a basic spatialized downscaling script over two months.
  • It wasn't clear to me how to get the full gridded product back out rather than just points. I went looking around in the examples and docs but couldn't readily find information about it. -> A new part is now added to the plotting section.
  • More generally I felt like there were many options in the configuration, but it was hard to know what the effects of changing some of them would be. I see there is some listing of options in the example yaml file in the documentation but I found it hard to scroll around there, and would find it much easier to search documentation where options are explicitly enumerated and described. -> A whole new table was added to explicit all options available for the config.yml file.
  • Variables in the output are lacking metadata when written as netcdf files. -> this was added in the file topo_scale.py as dataset attributes
  • The examples have some hard coding of paths and other things, and are lacking documentation in a way that made it difficult for me to get up and running. I would try to possibly streamline this experience and possibly even get a binder link set up so that people just exploring TopoPyScale can try out the examples directly in the browser. -> Two Binder Notebooks were added for example 1: https://mybinder.org/v2/gh/ArcticSnow/TopoPyScale_examples/HEAD
  • The only large change I would suggest making to the paper would be a table listing what variables are able to be downscaled, if such a limitation exists. -> Table 1 was added to describe downscaled variables.

@hugoledoux
Copy link

@arbennett @dvalters just a heads-up that the submission has been updated (with a clear summary just above), so if you could check it and update your checklist.

thanks!

@ArcticSnow
Copy link

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

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

@ArcticSnow
Copy link

Dear all,
You will find an updated and revised version of the code (V0.2.2) and the paper following all the constructive suggestions. I hope this fulfills the requirements and is satisfactory for future users of the library. You may see the checklist above in this discussion thread. I'd be happy to know if you identify further obvious improvements to perform.
Thank you

@arbennett
Copy link

Awesome, thank you so much @hugoledoux and @ArcticSnow! The changes look great, I'm particularly thankful for the table of configuration options in the docs and the updated example notebooks. I'm happy to say that I think this is ready to be accepted!

@hugoledoux
Copy link

uh oh, something went wrong here. Could one @openjournals/joss-eics help here?

@kyleniemeyer
Copy link

@openjournals/dev any idea how to interpret/fix the above error?

@ArcticSnow
Copy link

ArcticSnow commented Jun 15, 2023

@hugoledoux and @kyleniemeyer , it was simply a doubling of the references indicated by the bot inside the paper.bib file. I pushed a correction. My bad.

@hugoledoux
Copy link

@openjournals/ese-eics it seems the hiccup has been solved, can someone take care of formally accepting the paper please?

@kthyng
Copy link

kthyng commented Jun 22, 2023

@hugoledoux Thanks for the ping, this submission was never actually labeled as ready to go due to the error. I'll take a look at moving things forward now.

@kthyng
Copy link

kthyng commented Jun 22, 2023

  • Check that version was updated
  • Check that software archive exists, has been input to JOSS, and title and author list look good
  • Check paper

@kthyng
Copy link

kthyng commented Jun 22, 2023

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

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

@kthyng
Copy link

kthyng commented Jun 22, 2023

The paper looks good except for capitalization in the references. You can preserve capitalization by placing {} around characters/words in your .bib file. For example, Kronenberg et al seems to have a proper noun in the title that is not capitalized.

@ArcticSnow
Copy link

ArcticSnow commented Jun 23, 2023

@kthyng , Sorry for this typo. I was not aware of it. It should be corrected throughout the whole .bib file with the latest commit.
Thanks

@ArcticSnow
Copy link

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

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

@kthyng
Copy link

kthyng commented Jun 23, 2023

Ok great looks ready to go!

@kthyng
Copy link

kthyng commented Jun 23, 2023

@editorialbot accept

@editorialbot
Copy link
Collaborator Author

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

@editorialbot
Copy link
Collaborator Author

Ensure proper citation by uploading a plain text CITATION.cff file to the default branch of your repository.

If using GitHub, a Cite this repository menu will appear in the About section, containing both APA and BibTeX formats. When exported to Zotero using a browser plugin, Zotero will automatically create an entry using the information contained in the .cff file.

You can copy the contents for your CITATION.cff file here:

CITATION.cff

cff-version: "1.2.0"
authors:
- family-names: Filhol
  given-names: Simon
  orcid: "https://orcid.org/0000-0003-1282-7307"
- family-names: Fiddes
  given-names: Joel
  orcid: "https://orcid.org/0000-0003-2870-6972"
- family-names: Aalstad
  given-names: Kristoffer
  orcid: "https://orcid.org/0000-0002-2475-3731"
contact:
- family-names: Filhol
  given-names: Simon
  orcid: "https://orcid.org/0000-0003-1282-7307"
doi: 10.5281/zenodo.8043606
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Filhol
    given-names: Simon
    orcid: "https://orcid.org/0000-0003-1282-7307"
  - family-names: Fiddes
    given-names: Joel
    orcid: "https://orcid.org/0000-0003-2870-6972"
  - family-names: Aalstad
    given-names: Kristoffer
    orcid: "https://orcid.org/0000-0002-2475-3731"
  date-published: 2023-06-23
  doi: 10.21105/joss.05059
  issn: 2475-9066
  issue: 86
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 5059
  title: "TopoPyScale: A Python Package for Hillslope Climate
    Downscaling"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.05059"
  volume: 8
title: "TopoPyScale: A Python Package for Hillslope Climate Downscaling"

If the repository is not hosted on GitHub, a .cff file can still be uploaded to set your preferred citation. Users will be able to manually copy and paste the citation.

Find more information on .cff files here and here.

@editorialbot
Copy link
Collaborator Author

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

@editorialbot
Copy link
Collaborator Author

🐘🐘🐘 👉 Toot for this paper 👈 🐘🐘🐘

@editorialbot
Copy link
Collaborator Author

🚨🚨🚨 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.05059 joss-papers#4341
  2. Wait a couple of minutes, then verify that the paper DOI resolves https://doi.org/10.21105/joss.05059
  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...

@editorialbot editorialbot added accepted published Papers published in JOSS labels Jun 23, 2023
@kthyng
Copy link

kthyng commented Jun 23, 2023

Congrats on your new publication @ArcticSnow! Many thanks to editor @hugoledoux and reviewers @dvalters and @arbennett for your time, hard work, and expertise!!

@kthyng kthyng closed this as completed Jun 23, 2023
@editorialbot
Copy link
Collaborator Author

🎉🎉🎉 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.05059/status.svg)](https://doi.org/10.21105/joss.05059)

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

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

This is how it will look in your documentation:

DOI

We need your help!

The 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:

@kthyng
Copy link

kthyng commented Jun 23, 2023

@ArcticSnow If you're willing, we'd love to have you join our ranks of reviewers! You can sign up here: https://reviewers.joss.theoj.org/join

@ArcticSnow
Copy link

Thank you @kthyng for finalizing the publication of the manuscript.

Thank you also to @hugoledoux , @arbennett and @dvalters for a constructive reviewing process. I enjoyed the emphasis on publishing a user-focused paper/software package. It forced us to put in place a consistent platform for using and developing this package

I will gladly take part to the JOSS adventure and will sign up for joining as a reviewer.

Thank you from me and my co-authors!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted published Papers published in JOSS Python review TeX Track: 6 (ESE) Earth Sciences and Ecology
Projects
None yet
Development

No branches or pull requests

7 participants