Closed whedon closed 2 years ago
Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @Samuel-Wagner, @emanuelhuber it looks like you're currently assigned to review this paper :tada:.
:warning: JOSS reduced service mode :warning:
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.
:star: Important :star:
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:
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
Wordcount for paper.md
is 1526
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.1190/1.1440826 is OK
- 10.1190/1.1440899 is OK
- 10.1017/9781316756041 is OK
- 10.1109/TUFFC.2010.1718 is OK
- 10.1109/TUFFC.2007.400 is OK
- 10.1109/TUFFC.2011.1904 is OK
- 10.1109/TUFFC.2012.2478 is OK
- 10.1063/1.3703163 is OK
- 10.1016/j.ndteint.2012.10.005 is OK
- 10.1063/1.4928118 is OK
- 10.1109/ULTSYM.2017.8092389 is OK
MISSING DOIs
- None
INVALID DOIs
- None
Software report (experimental):
github.com/AlDanial/cloc v 1.88 T=0.06 s (617.3 files/s, 75709.5 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
MATLAB 29 469 1133 1573
Markdown 5 230 0 778
TeX 1 18 0 191
YAML 1 1 4 18
-------------------------------------------------------------------------------
SUM: 36 718 1137 2560
-------------------------------------------------------------------------------
Statistical information for the repository '24166a9027d768e496096f49' was
gathered on 2022/02/22.
No commited files with the specified extensions were found.
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@Samuel-Wagner, @emanuelhuber this is where the review takes place. You can now start and you can post comments to the author here or open dedicated issues on their software repository and link to them here.
Please let me know if you have any questions. Thanks again for your help!!!!
@Samuel-Wagner, @emanuelhuber I hope you are doing well. Could you provide an update on how the review is going or if you have started yet? No worries if you haven't started yet, I am just checking in. Thanks again for your help.
@Kevin-Mattheus-Moerman I started the review, installed Octave . Hope to be finished by the end of the week. Best, Emanuel
(@Kevin-Mattheus-Moerman should I leave the check box "Installation instructions" unchecked if the requirement seems to be not completely fulfilled?
Here are some points I rise
All image ranges processed
Total processing time: 1.3711 seconds.
error: text: Invalid combination of points and text strings
error: called from
text at line 128 column 7
polRawDataImage at line 93 column 1
cpsm_test2D at line 30 column 1
The paper is well written, the code is documented, datasets are available, the examples work well, I could run everything although I am not an octave/matlab user and some effort has been done to explains some of the algorithms. I warmly thank the author for his contribution to the community!
@emanuelhuber , thank you for your valuable feedback! I will try to follow up on and correct each point that you have raised. Thanks also for being patient and flexible regarding installation of octave. As indicated in the paper, I'd like to (some day) update the toolbox to an open source (and perhaps more modern) programming language, for example Python. I haven't used Julia but I will definitely look into it.
@Kevin-Mattheus-Moerman : I guess I should wait for Samuel-Wagner to finish his review before I start changing anything?
@mh-skjelvareid , I startet programming with Matlab 20 years ago, then I switched to R (which is very similar to Matlab). Now I am learning Python for my job and I don't like it. I wrote a R-package (RGPR) and am still playing with the thought to translate it in another language. First I thought that Python would be great because many people in geosciences use it. But now I don't know... maybe write C/C++ functions that can be used in any language? Write a Julia package?
@emanuelhuber
... should I leave the check box "Installation instructions" unchecked if the requirement seems to be not completely fulfilled?
Yes, leave anything you are not happy with unchecked until resolved.
@mh-skjelvareid
I guess I should wait for Samuel-Wagner to finish his review before I start changing anything?
No you can start addressing @emanuelhuber 's comments right away if you like.
@Samuel-Wagner can you provide an update on how you are getting on with the review? It is okay if you need more time, just let us know, I am only checking in to see how things stand. Thanks again for your help.
@whedon generate pdf
My name is now @editorialbot
@editorialbot generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@Kevin-Mattheus-Moerman , I have now tried to address the points raised by @emanuelhuber :
Documentation
- readme.md file: In the summary the author explains that the toolbox is for a certain type of data but he does not explain what exactly the toolbox do (i.e., focusing these kind of data). I do not know if the toolbox can do more than focusing.
I have updateed the summary to clarify that the only purpose of the toolbox is to focus pulse-echo data.
- There is no "clearly-stated list of dependencies": I had to install the 'signal' toolbox which required the 'control' toolbox. A short information about the dependence on signal and how to install and load the 'signal' toolbox would be welcome (why should I load manually the signal package?).
I have added "Requirements" section to the readme.md file which states that the toolbox requires Matlab / Octave and a signal toolbox to run. I've added a few practical details regarding installation of these.
- I could not find any "external" API method documentation but the function are documented in their file and the three main focusing methods are described in the readme file and the examples allow to find the corresponding functions. It requires some extra "dig work" for novices to octave (like me). The simplified algorithms are surely a great ressource for the community.
I've added a "Documentation" section which states that the main toolbox functions are documented in the standard Matlab/Octave style (description at start of function). The documentation can be viewed on the Matlab/Octave command line by using the help
command. I've also described how the "test" scripts are intended as a demonstration of how to use the toolbox.
- Both file 'array_psm_testFullMatrix_1layer.m' and 'array_psm_testFullMatrix_2layer.m' have exactly the same note ('copper block') but load different files ('steel pins' and 'copper block'). Please check if the notes are correct.
The description in 'array_psm_testFullMatrix_1layer.m' was incorrect and has been updated - thanks!
- When running 'cpsm_test2D.m' I got the following error : All image ranges processed Total processing time: 1.3711 seconds. error: text: Invalid combination of points and text strings error: called from text at line 128 column 7 polRawDataImage at line 93 column 1 cpsm_test2D at line 30 column 1
The polRawDataImage
and polFocusedImage
functions have been fixed to avoid this error.
Software paper Statement of need:
- I suggest the author to repeat that synaptus is a toolbox for focusing...
I wasn't entirely sure what Emanuel meant by this comment, but I'm guessing he wanted a similar clarification as in the readme.md file (a statement that the toolbox is only used for creating focused images). I have tried to add this in the introduction to the Statement of need.
- The author writes that Alain Plattner used "the code". This is misleading and it would be better to replace "the code" with the "Stolt fk migration function".
This passage has been updated as recommended.
- I found other open-source toolboxes for SAR data focusing, it would be interesting to know how they differ from synaptus: https://github.com/ThatcherC/RadarPro https://github.com/cryotools/osaris http://step.esa.int/main/toolboxes/snap/snap-faq/
I have added a paragraph to the paper referencing some of these toolboxes, and explaining that
Synaptus
toolbox.@Kevin-Mattheus-Moerman Thank you very much for adressing all my comments. Everything is fine!
@mh-skjelvareid In my opinion, the paper is ready for publication.
@emanuelhuber thanks for your help. If you are happy to recommend publication, can you please tick all remaining boxes :point_up: ? Thanks again!
@Kevin-Mattheus-Moerman All check boxes are now checked!
@Samuel-Wagner how are you getting on? Are you able to start this review? Thanks!
@Samuel-Wagner how are you getting on? Are you able to start this review? Thanks!
I have just emailed @Samuel-Wagner a reminder about this review.
@Samuel-Wagner can you please update us on review progress?
@Samuel-Wagner can you please update us on review progress?
@Samuel-Wagner can you please update us on review progress?
:point_up:
@Samuel-Wagner Since we have not hear from you I will now assume you cannot review this work and will remove you as a reviewer.
@editorialbot remove @Samuel-Wagner as reviewer
@Samuel-Wagner removed from the reviewers list!
@arfon given that it has been challenging to find reviewers for this submission and that one of the reviewers was unable to complete the review I proposed that I will review this work as a second reviewer. Given my MATLAB and image analysis skills I feel I can review this quite well.
Sounds good to me @Kevin-Mattheus-Moerman 👍🏻
@editorialbot add @Kevin-Mattheus-Moerman as reviewer
@Kevin-Mattheus-Moerman added to the reviewers list!
@mh-skjelvareid I installed and tested the software and it all works really well after I implemented the below minor fix.
%% Add path to necessary functions
addpath('../core','../misc')
%% Load test data load('../datasets/ArraySteelPins.mat','data','MWB')
with
```matlab
%% Add path to necessary functions
toolboxPath=fileparts(fileparts(mfilename('fullpath'))); %Get the toolbox path
%Add core and misc path
addpath(fullfile(toolboxPath,'core'),fullfile(toolboxPath,'misc'));
%% Load test data
load(fullfile(toolboxPath,'datasets','ArraySteelPins.mat'),'data','MWB')
This fix should work for all operational systems.
caxis([minVal maxVal])
as well as set(gca,'CLim',[minVal maxVal])
, for clarity you could consider just using one approach. The former (the use of axis
) is labelled as deprecated for future MATLAB releases in favor of clim([minVal maxVal])
. However, do check compatibility with Octave too which may still use the axis
approach. clear all
is the same as clear
since all
is default. Elsewhere you use clearvars
which probably does the same thing again. But again, check Octave compatibility too. disp('Loading data');
and disp('Processing data');
as messages in the tests, but not always, consider using it for all tests. @Kevin-Mattheus-Moerman Thanks a lot for the nice fix for the path definitions, and the other comments regarding consistency and testing. I've addressed the main point and some of the listed suggestions. I've checked the boxes for issues that have been fixed, and have added comments in between.
@mh-skjelvareid I installed and tested the software and it all works really well after I implemented the below minor fix.
Main issue
- [x ] Can you merge this pull request, it fixes a bug for Ubuntu Linux. Namely that the path definitions did not work. I went through the various test codes and replaced stuff like:
%% Add path to necessary functions addpath('../core','../misc') %% Load test data load('../datasets/ArraySteelPins.mat','data','MWB')
with
%% Add path to necessary functions toolboxPath=fileparts(fileparts(mfilename('fullpath'))); %Get the toolbox path %Add core and misc path addpath(fullfile(toolboxPath,'core'),fullfile(toolboxPath,'misc')); %% Load test data load(fullfile(toolboxPath,'datasets','ArraySteelPins.mat'),'data','MWB')
This fix should work for all operational systems.
Done!
Minor comments (not requirements):
[x] Note that you currently use both
caxis([minVal maxVal])
as well asset(gca,'CLim',[minVal maxVal])
, for clarity you could consider just using one approach. The former (the use ofaxis
) is labelled as deprecated for future MATLAB releases in favor ofclim([minVal maxVal])
. However, do check compatibility with Octave too which may still use theaxis
approach.
I've gone through the code and changed this to consistent use of caxis([minVal,maxVal]).
[x ] Note that
clear all
is the same asclear
sinceall
is default. Elsewhere you useclearvars
which probably does the same thing again. But again, check Octave compatibility too.
I've gone through and changed the first lines of each script to "close all; clearvars". "clearvars" only clears variables while "clear" clears everything. It doesn't matter much for the test scripts, I think, but I've found clearvars to work better in some cases, so I've made it a habit.
[x ] You sometime have
disp('Loading data');
anddisp('Processing data');
as messages in the tests, but not always, consider using it for all tests.
I've added this for all the tests, and I've also standardized the measurement of processing time for each test (using only tic and toc).
[x ] You may consider, in future work, implementing automated testing, e.g. by running all tests automatically (see also something like: https://github.com/gibbonCode/GIBBON/blob/master/lib/testGibbon.m).
I've added a new script, "tests_runAll.m", which displays a "test suite header" and then runs each test one by one. Inside each of the tests I've also added a bit of code which displays a header. This gives a nice separation between the text output ("Processing layer 1 of 2" etc.) from each test.
- [ ] You may also consider, in future work, making the tests "publishable" in the MATLAB code publishing sense, this way they can turn in to HTML files that you can render as documentation too. Once again GIBBON might be an example.
This seems like a nice solution. I'm not sure if I understand exactly how it works, though. Is all the documentation generated through (Matlab) publishing during installation? If so I guess it won't work for Octave? I get the sense that this could make for some nice documentation, but that it'll be a bit too much work for me to implement at this stage (the toolbox is no longer part of my active research work).
- [ ] Similarly you may consider automated script based installation (which could simple be adding the toolbox paths and saving them).
I agree that this would make the installation a bit smoother. However, I have no experience in making installation scripts, and I'm expecting that it's hard to make something that works in absolutely all cases...(?) I think I'd prefer for the users to add the toolbox to the path of their particular installation of Matlab / Octave themselves.
@editorialbot generate pdf
@mh-skjelvareid thanks for implementing those changes and for your comments. I tested the changes this time using Octave on Ubuntu, rather than MATLAB, and all tests passed fine and the changes look good.
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@mh-skjelvareid I have proofread the paper and here are some last points and recommendations:
NOTE: This is a draft version of a paper submitted to the Journal of Open Source Software (JOSS).
more computationally efficient that operating
which should read more computationally efficient than operating
resouce
-> resource
cartesian
-> `Cartesian'procesing
-> processing
accomodate
-> accommodate
optimized
, vectorized
, and specialized
which favors American English, whereas the use of Aluminium over Aluminum favours Brittish English. Either is fine but it is best to be consistent. Overview of experiment setup
, this should perhaps be improved to something like Overview of the experimental setup
Seen from side
-> Seen from the side
ultrasonic raw data
-> raw ultrasonic data
@Kevin-Mattheus-Moerman, thanks for finding all these mistakes, I've corrected them all, and have also corrected a couple of other mistakes I found during spellchecking. I went for consistency with American English.
@mh-skjelvareid I have proofread the paper and here are some last points and recommendations:
- [x] Please complete the affiliation with the full name of the institute, the city name, and the country.
- [x] Remove the statement:
NOTE: This is a draft version of a paper submitted to the Journal of Open Source Software (JOSS).
- [x] Check
more computationally efficient that operating
which should readmore computationally efficient than operating
- [x] Check
resouce
->resource
- [x] Check
cartesian
-> `Cartesian'- [x] Check
procesing
->processing
- [x] Check
accomodate
->accommodate
- [x] Can you check for consistency with either American or European (Brittish/Irish) English? E.g. You use
optimized
,vectorized
, andspecialized
which favors American English, whereas the use of Aluminium over Aluminum favours Brittish English. Either is fine but it is best to be consistent.- [x] Check
Overview of experiment setup
, this should perhaps be improved to something likeOverview of the experimental setup
- [x] Check
Seen from side
->Seen from the side
- [x] Check
ultrasonic raw data
->raw ultrasonic data
@editorialbot generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@mh-skjelvareid it looks good except Overview of the experiment setup
should still be changed to Overview of the experimental setup
.
@Kevin-Mattheus-Moerman Sorry about that, fixed now.
@editorialbot generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@mh-skjelvareid Now that all reviewers are happy with both the software and the paper we can proceed to process this for acceptance in JOSS. Here are some action items for you:
v1.1.0
, is this still accurate or should we update this? Note the automated approach above may cause you to issue an updated version so please inform us what the version tag should be. Thanks.
@Kevin-Mattheus-Moerman , see replies below:
@mh-skjelvareid Now that all reviewers are happy with both the software and the paper we can proceed to process this for acceptance in JOSS. Here are some action items for you:
- [x] Please archive a copy of the software on ZENODO. You can do this manually if you like but some find these automated steps useful.
- [x] Please check and edit the ZENODO archive so that the title and the authors match those of the paper. Also check that the license is correct. Furthermore we recommend that you add your ORCID information to the ZENODO archive too.
- [x] Once you have the archived version created, please report back here with the archive DOI.
All done. The DOI is 10.5281/zenodo.6974194 I've added the DOI badge at the top of the ´README.md´ file:
I think I got all the details right, but please check that I did. My chosen license is GNU GPL v3, but this wasn't available in the drop-down menu of possible licenses, so I chose the closest one, "GNU General Public License v2.0 or later"
- [x] The current version tag is
v1.1.0
, is this still accurate or should we update this? Note the automated approach above may cause you to issue an updated version so please inform us what the version tag should be.
I believe that until now, the version has been v1.0 ("Initial release"), but I've created another release in order to get the Zenodo DOI, so the current (latest) version is v1.1. Does it look OK?
Submitting author: !--author-handle-->@mh-skjelvareid<!--end-author-handle-- (Martin H. Skjelvareid) Repository: https://github.com/mh-skjelvareid/synaptus Branch with paper.md (empty if default branch): Version: v1.1 Editor: !--editor-->@Kevin-Mattheus-Moerman<!--end-editor-- Reviewers: @emanuelhuber, @Kevin-Mattheus-Moerman Archive: 10.5281/zenodo.6974195
:warning: JOSS reduced service mode :warning:
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 badge code:
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
@Kevin-Mattheus-Moerman & @emanuelhuber, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:
The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @Kevin-Mattheus-Moerman 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 @Kevin-Mattheus-Moerman
✨ 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
Code of Conduct
General checks
Functionality
Documentation
Software paper
Review checklist for @emanuelhuber
✨ 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
Code of Conduct
General checks
Functionality
Documentation
Software paper