-
Notifications
You must be signed in to change notification settings - Fork 35
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
PyGMTSAR (Python GMTSAR) #60
Comments
👋 hi @mobigroup thank you for this submission. I will get back to you with next steps. In the meantime can you explain what the GMTSAR binary tools are / entail? does this package wrap around them to perform tasks on sentinel data? or is it an API wrapper to download the data? Many thanks for any clarification. EDIT: also for all package maintainers, will you please include github handles for each maintainer rather than an email? Many thanks. |
Hi @lwasser GMTSAR is a well-known satellite interferometry (InSAR) system based on GMT tools for geospatial data processing, see details on the project page: https://topex.ucsd.edu/gmtsar/ You’d use GMTSAR for the complete interferometry processing but it doesn’t have any user interface because it’s a set of linux console binaries and shell scripts. Every processing requires lots of manual work even when you are a linux Jedi. Also, there are some issues in the processing like to outdated interpolation methods. I use GMTSAR tools but exclude all the GMT tools for the new generation of a satellite interferometry system. I’m sorry if it sounds not so easy to understand because satellite interferometry system includes hundreds of different tools and we try to reuse some existing ones when it’s possible and add dozens of new ones (because building it from the scratch requires decades of work). I’m a single developer of PyGMTSAR and there are no other package maintainers. PyGMTSAR GitHub repository includes some 3rd party open source software like to GMTSAR and SNAPHU (satellite interferometry phase unwrapper) and I work on GMTSAR codes too (and send the patches to it’s GitHub) to adopt the required tools to call them from PyGMTSAR. PyGMTSAR python library is located in the project subdirectory (as GMTSAR and SNAPHU codes) and it’s available as PyPi package: https://pypi.org/project/pygmtsar/ Actually, I work on the two projects at the same time: GMTSAR and PyGMTSAR where GMTSAR has lots of developers and PyGMTSAR is my own project. |
hi @mobigroup thank you for your patience with us as we stand up pyOpenSci. I think you have CI already so we can check that box. I am going to look for someone in the community to have a look at this package. We are just getting our editorial board setup and I am trying to create structure for the organization. I want to make sure that you have a good experience with us. Please know that this process may be a bit slower than usual as we get things together. One other question - are there any other packages that perform overlapping tasks to this package? Many thanks |
Hi @lwasser thanks, I understand it’s not so easy to review complex software packages! And yes, I’ve added CI tests recently.
While there are dozens of satellite interferometry packages I don’t know any other available for everyone (you don’t need to write very complex configurations in many separate files and so on) and everywhere (as on local computer as on cloud servers and even on Google Colab) using Python scripts or Jupyter notebooks. Please follow the link to live Google Colab notebook to compute and plot the results (and edit the code and interactively view the changed results) in your browser without long hassles with software installation and other problems. At the same time, PyGMTSAR works fast using parallelization intensively and allows to process huge datasets on very common hardware like to Apple Air (using lazy computations provided by dask and xarray packages). You’d find the community on LinkedIn where I post the package updates and collect the feedback: https://www.linkedin.com/in/alexey-pechnikov/recent-activity/ |
hey @mobigroup i just wanted to check in with you - we are searching for an editor so i'm hopeful that we can get things going soon. i'll stay in touch this week as I continue to search. We are just reestablishing our structures so I truly appreciate your patience here. please ping me with any questions |
Hi @lwasser thanks for the update. FYI, In the recent days I’ve shared PyGMTSAR Docker image which includes the ready to use environment and the live Jupyter notebooks to easy start locally without Google Colab usage. See below how to use it. Configure your Docker runtime (Preferences -> Resources tab for Docker Desktop) to use 2 CPU cores and 8 GB RAM or 4 CPU cores and 16 GB RAM and so on. Download the Docker image (or build it yourself using the Dockerfile in the repository) and run the container forwarding port 8888 to JupyterLab using this commands inside your command line terminal window:
See the output for the JupyterLab link and copy and past it into your web browser address line. Also, the donwloaded Docker image can be started in Docker Desktop app — press “RUN” button and define the container name and the port in the opened dialog window (see “Optional settings” for the port number input field) and click on the newly created container to launch it and see the output log with the clickable link. |
oh that's cool. have you thought about making that image into a binder image? or would it not have enough resources? @mobigroup and just an update. i think i've found an editor for this. thank you for being so patient. We are just getting the organization structure in place and it just takes time. I think this editor will be back online next monday and then we can kick things off. In the meantime I have a few additional questions (in the future this will be in the review up front)
Many thanks in advance for your time and patience here. |
One other note - if you want to work on something while we get organized, you could look into the JOSS side of things. We certaintly don't require this but
The way this works is that once our review is done, JOSS accepts our review and only looks at your paper. You are thus fast tracked through the JOSS review process via our review. |
Hi @lwasser thanks, I'm glad to listen about the progress!
Yes, sure.
Ok, I'll.
Ah, got it, I completely forgot about it! |
Awesome!! Thanks @mobigroup !!! Much appreciated!! |
Update: NASA operator Alaska Satellite Facility has installed GMTSAR on OpenSarLab (OSL). Now you can run PyGMTSAR out of the box right after starting OSL. |
Hi @mobigroup thank you for the update. It's clear you are doing a lot to make PyGMTSAR accessible for everyone @lwasser asked me to check in here, in my role as editor in chief. Just letting you know that we do have a potential editor and reviewers. We're still doing a little more homework about fit and overlap. You should hear back on this issue within a week. In the meantime, could I just remind you to take this quick (10-15m) survey when you get a chance? This helps us understand how well we are serving you and the rest of the Python open science community. |
@mobigroup so sorry i gave david the wrong survey link - this is the correct one. . ive updated David's comment above as well. this is my fault. |
@NickleDave @lwasser thank you for the information, I’ve filed the survey. Let me note one additional point: there is a big problem for freelancers in science community because we can’t publish a paper or obtain a grant (authors must have an affiliation to an industrial company or a research institute) even for projects completed for well-known industial companies (Google Inc, for example, see some related projects on my GitHub) or research institutes. Surprisingly, arXiv asks for registered experts review but always rejects papers from authors without affiliation too. |
Thank you @mobigroup, we appreciate you taking the time to do that! I hear you about how the scientific community may be pushing out freelancers (perhaps unintentionally) because of the requirement for affiliations. I guess this was prompted by a question in the survey? Should we add fields for "freelancer" or "unaffiliated" somewhere? |
@NickleDave It’d be valuable I think. Maybe my case is unique or maybe not: we can’t be sure without the targeted questionnaire. How about some more options for a respondent occupation? Maybe “freelancer” and “contractor” are not rare cases. |
That makes sense, I have passed that on to @lwasser. @mobigroup I just want to update you on where we're at with this. We really appreciate your enthusiasm and we think there are good reasons to review the package. Before we start a review, then, we'd ask you to make changes that achieve the following: It is of course up to you to decide how best to achieve that given the goals and audience of your package. Please let us know if that makes sense. Happy to continue the conversation here to clarify |
@NickleDave Ah, maybe would you explain on examples? The project documentation below cited from https://mobigroup.github.io/gmtsar/
Please let me know some exact recommendations how to make the documentation more clear! |
Hi again @mobigroup, thank you for your detailed reply.
Let me explain what I'm looking for in terms of our process and our criteria. These are the relevant criteria/goals:
limit overlapping functionalityThis is where we have a strong case to review the package. It's obviously in scope for pyOpenSci. Since you are providing to some extent a wrapper around GMTSAR, and there's no other wrappers, it's likely that there's little overlap in functionality with other packages. But we still need to evaluate this. I can't currently do that because I am not able to find a list of features, unless I take the time to read the GMTSAR docs and learn it myself, then take the time to work with pyGMTSAR to see how it provides that functionality. There's a couple of ways to address this: have a clear list of features in the README.Notice that I said a list, not paragraphs of text. These features should be bullet points with succinct, concrete verbs and nouns so that it's easy for a user to find and understand them. Just adding this list alone would go a long way towards helping me and potential reviewers understand the specific functionality provided by pyGMTSAR have API documentationThe second way to make the functionality of pyGMTSAR plain as day would be to add API docs, for example like pyGMT provides: https://www.pygmt.org/dev/api/index.html Design and plan for long term maintenanceLet me explain this before I say anything about the criterion of documentation. Currently the way the package is presented gives me the impression that it would require a very significant investment of time for anyone else to even begin to understand how to take over development and maintenance. This makes me very hesitant to review. There's a couple of things that concern me in this respect:
See also this section in our guidebook about maintenance: I am not asking you to commit to two years of maintenance now, but I am saying that I am having a hard time imagining who we could even ask to take over maintenance should you need to step away in the future. improve package usability through documentationLastly let me talk about the documentation. I hope it will make more sense here in light of the review criteria I have just listed and discussed. Here I am replying directly to the examples you provided. Please know as I said before that your enthusiasm for the project is quite evident as well as the significant amount of work you have already put in. And there are a lot of great things about the documentation! For example the Google CoLabs notebooks are very close to the kind of vignettes we would like projects to have. With what I say, I am trying to help you. The main thing I would want to see before we begin a review is a revision of the documentation with an emphasis on concise, clear writing, without run-on sentences and without paragraphs of text except where absolutely needed, e.g. a tutorial. Again, I am not saying this because I enjoy critiquing people's writing; I'm asking for this because it would help me know that you are focused on making the project approachable by as wide an audience as possible, as fits with our criteria, and that we would be able to find someone who could if needed take over maintenance.
Now that you point me at it again, I do see you state a description of the project first thing in the README. But it's only after I've already read through half a paragraph of text, and it's a very long sentence. A relevant example of a project description from the pyGMT docs:
Notice that this is only two sentences and it tells me exactly what PyGMT does at the highest level. I do not need any knowledge of GMT to understand. If I were to rewrite your description of pyGMTSAR, I would boil the second paragraph of your README down to something like the following:
I am not a domain expert, so what you have written does not tell me a lot. If you really want to reach a wider audience of potential users, contributors, and future maintainers, that do not already have deep knowledge of GMT and GMTSAR, you could additionally provide one more paragraph of just one or two sentences defining what satellite interferometry is, e.g. with a wikipedia link. Here the GMTSAR docs do a good job of this, which of course you are familiar with but I'm just trying to illustrate my point: https://topex.ucsd.edu/gmtsar/
I am not able to find the text you quoted in either the README or the docs -- can you link me to them? Are these in the modules themselves? I did see in one or two places you wrote something like "this wraps function gmtscript.sh". What I want to know is: is there just two classes in pyGMTSAR? I'm not saying it's bad if there are, but I'm saying I can't tell from the docs or code, I would have to install it myself and literally Other things that would help make the package usage and goals obvious in a clear concise way include:
Again, I can see that you have put a ton of work into pyGMTSAR. I know I wrote a lot here. All of this feedback is meant to help you reach a wider audience, and to make sure we are set up for a good review experience. Please feel free to follow up with questions and more discussion. |
Hi @NickleDave your explanation is detailed, thanks! I see I need to reread it some times point-by-point. But I'm afraid you still didn't check the project documentation, right? Please open the documentation to find the answers for some of the questions. PyGMTSAR Documentation and the Functions Reference
And the both PyPI and DockerHub pages available directly from the top of README GitHub page: PyGMTSAR original and wrapped GMTSAR functionsThe functions reference includes the exact note for the original and wrapped PyGMTSR functionality: Package InstallationThere are so many ways to install the package:
The Docker image usage instructions listed on the DockerHub page: Also, the Docker image build instructions included too.
Brief demonstration usageThe Google Colab Live examples provides the use cases and compare the results to other InSAR systems (that's important for science research purposes) and list the keywords to find the notebook resolving the exact tasks: Do you need to use landmark and compute a vertical displacement? See the notebook "with landmask applied to interferogram, unwapped phase, and LOS, east-west, vertical displacement results." Do you need to crop your scenes? Look for "cropped subswath processing" notebook. How about atmospheric noise correction? It's easy to find too: "detrending approach to remove atmospheric noise". These are not just code snippets but the ready to use interactive processing pipelines. The project goalThat's easy and explained in the project title:
Even GMTSAR developers were sure that's impossible! You'd find our discussions in GMTSAR GitHub project tracker. InSAR users have 256 - 512 GB RAM and make very complex run scripts for the processing. PyGMTSAR performs the processing even on 16 GB RAM Apple Air. PyGMTSAR provides more functionality and faster processing on Apple Air using interactive Jupyter Notebook than you'd obtain on 512 GB RAM host using custom and complex GMTSAR console scripts. As the result, PyGMTSAR is available even in Google Colab Notebooks but we can't do the same for any other satellite interferometry system as I know. This is the huge difference between any existing InSAR system and widely available InSAR system PyGMTSAR. And all the technical solutions are targeted to achieve the goal! |
Hi @mobigroup, yes let's go point-by-point. I'm sorry for the lengthy response that was probably overwhelming. Thanks for the screenshots that show the API documentation. Can you please share a link to that? I did look at your docs, many times, but obviously I was not able to find it. |
@NickleDave The documentation https://mobigroup.github.io/gmtsar/ includes "Reference" chapter right after "Tutorials: Live Examples on Google Colab" chapter: |
Thank you @mobigroup -- I do see the reference documentation now if I scroll past the tutorials. This helps me see that many (most?) of the methods on the |
I'm sorry for my slow replies @mobigroup. We've run into a couple things here that we haven't handled before so we wanted to get feedback. I will update you in the next couple of days -- didn't want you to think we had forgotten about you. |
Hi again @mobigroup. Thank you for your continued patience. As I said above, it seems pretty clear that the functionality of But I don't think we can review at this time, unless you would be able to:
As I stated in the comment above, this is because by reviewing and accepting a package into the pyOpenSci ecosystem, we are committing to support maintenance of the package. That includes finding another maintainer should you need to step away. It is unclear to us whether we would be able to guarantee that for I am sorry these criteria were not more clearly documented in our guidebook. We have not run into this exact situation before so we are figuring out how to handle it on the fly. We will learn from this review process and provide clearer standards, in particular for packages that are wrappers around lower-level languages. If you feel like you cannot make these changes to the development workflow right now, please know I very much understand as a developer myself. We would still be open to reviewing in the future. You might consider submitting for review with JOSS in the meantime, which provides a similar review process. That way you could still get credit and get feedback from reviewers without needing to adapt to our specific standards. Please let me know if the reasoning I am giving for not going forward with the review is clear. |
@NickleDave I'm sorry but it looks inappropriate. I spent a lot of time answering on your questions (and attaching screenshots because you didn't read the project documentation and wrote again and again about missed documentation) and today you rejecting all the work referencing to the 3 dummy points:
You are referencing to adopted GitHub documentation for developers available on https://docs.github.com/en/get-started/quickstart/contributing-to-projects How does it related to your review? @lwasser Please let me know is it your official position to insult authors ("unless you would be able to: so that pygmtsar is clearly its own package, not a fork of GMTSAR") to reject an application? Obviously, I did'n stole the ownership and it's very easy to prove using GitHub commits record and @NickleDave have no any right to blame me or anyone else! |
Hi @mobigroup
I know this and I completely understand your frustration.
You are right that I could have scrolled through the entire single page of documentation the first few times I read it, so that I could find the API reference at the bottom.
I think my meaning was not clear here; by no means do I mean to say that you are stealing ownership. edit: I know you have very good reasons for adopting your development workflow and that you have put in a ton of effort to provide easy access to
I am sorry if my reasons for sharing these links was not clear. I am not asking you to provide an entire section on how to use GitHub. I am asking you to provide a single page with a verbal description of how you develop and build This would show how another person could contribute and if necessary maintain the package, should you need to step away. If you can provide that single page documenting how you develop, then it will help us understand what would be required to maintain the project. Does that make sense? |
@NickleDave Thanks, that sounds better. At the same time:
|
We are not rejecting a review. I should have phrased that differently in my last reply. As I said in the reply before that, if you can provide documentation of the development process, that will help us understand what is required. If we feel that we would be able to find new maintainers given the requirement, then we could proceed with a review. You have just helped me better understand development. Thank you.
Like I said, we have not dealt with this situation before and I apologize that we are working out how to handle it now. I get why you feel like I am making up some new criterion. I acknowledge that we do not currently have very specific language in our guidebook about what kind of documentation a project needs to have about its development. I have raised this issue to add it to avoid this problem in the future: pyOpenSci/python-package-guide#8 Please give me and the rest of the editors until Monday at the latest to carefully read your reply and understand what you have explained. I want to make sure I do not make this process any more frustrating for you because I have not thoroughly understood what you are telling me here. I will reply in more detail as soon as I have a chance. |
Hi @mobigroup thank you for your reply, and for your patience with this review. To update you: we are continuing to talk with maintainers that develop similar packages so we can better understand what would be required for maintenance. We should have concrete feedback for you by the end of the week. Again I am sorry it is not sooner -- @lwasser is dealing with a family situation right now. We appreciate your continued patience. |
Hi @NickleDave thank you for the update! |
Hi, Alexey. First and foremost I wanted to say thank you for all of the energy that you’ve put into this review and as a maintainer for pyGMTstar. We know that working with the GMT tools is not easy. And we appreciate your expertise as a maintainer and your efforts to make accessing sentinel data easier for scientists. I want to start by saying we are not rejecting your package. However, in order to review your package, we require some significant changes to its current structure. A foundational goal for pyOpenSci is continued maintenance of our packages. We are not a journal per se, rather we are an ecosystem that curates lists of vetted, peer reviewed tools. Our partnership with JOSS supports the Journal / publication component if publishing is all that you desire. As such, for every package that comes to pyOpenSci, we need to carefully consider whether we can support future maintenance of the tool in case a maintainer steps down. Mainainters with the best intentions burn out, get new jobs, etc. The issue of long-term maintenance and dependability of packages is a problem that pyOpenSci seeks to address. Your package, as designed, would be challenging for us to support. Its core structure depends upon two repositories being updated and staying in sync. Syncing files across two repos would be extremely difficult for a new maintainer to take on. Another foundational goal for pyOpenSci is to facilitate contributions from the community to our packages. Contributions from others who are not working on pyGMTstar would also be incredibly challenging given the current structure of pyGMTStar package. Please know that right now I am the sole full time employee of pyOpenSci. And I am lucky to be working with volunteers like David and others every day to build this project. This is only my second month here full time. Unfortunately I can only do so much each day which is why some of the things I wrote above aren’t fully in writing - yet. This is the first package we have considered reviewing that has a C library as its base and that is also vendored via a fork. Again, we think you’ve done incredible work here. We are not rejecting you. Rather we are saying that right now, the way the package is structured conflicts with our goals as an organization. And thus we are unable to review it. However, in the future, if you are able to work on the items above, we could consider it for review. I understand and respect if you disagree with anything that i’ve written above. But I need to adhere to the goals and mission of the organization as I make decisions. If you have any followup questions, I'm happy to answer them here. If there are no questions, we will close this issue (for now). You are welcome to re-open it in the future or submit a new issue. You might also consider looking at JOSS in case they do have the technical expertise to review your package as it is now. Thank you for understanding what we are trying to achieve at pyOpenSci, Alexey. We appreciate your hard work on this package. |
closing this given there has been no engagement in a few weeks. thank you everyone for your patience. |
Submitting Author: Alexey Pechnikov (informally) or Aleksei Pechnikov (by passport) ([email protected])
All current maintainers: ([email protected])
Package Name: PyGMTSAR
One-Line Description of Package: PyGMTSAR (Python GMTSAR) is an open source project and Python package that provides easy and fast Sentinel-1 Satellite Interferometry for everyone
Repository Link: https://github.com/mobigroup/gmtsar
Version submitted: 2022.9.14.3 (https://pypi.org/project/pygmtsar/)
Editor: TBD
Reviewer 1: TBD
Reviewer 2: TBD
Archive: TBD
Version accepted: TBD
Date accepted (month/day/year): TBD
Description
PyGMTSAR (Python GMTSAR) is an open source project and Python package that provides easy and fast Sentinel-1 Satellite Interferometry for everyone! While it's pure Python package under the hood it uses GMTSAR binary tools which should be installed.
Scope
As I know the project used in research community, high school teachers and students (see GitHub followers for more details). And it's really available for everyone in just one click by web link, try the Live Google Colab examples on the GitHub project page.
The goal of the project is easy and fast satellite interferometry (InSAR) interactive and batch processing in Python scripts and Jupyter Notebooks for Sentinel-1 radar scenes everywhere as on localhost as on cloud environments like to Google Cloud VM and AI Notebooks and Amazon EC2 and even on free of charge cloud environment Google Colab.
Technical checks
For details about the pyOpenSci packaging requirements, see our packaging guide. Confirm each of the following by checking the box. This package:
Publication options
JOSS Checks
paper.md
matching JOSS's requirements with a high-level description in the package root or ininst/
.Note: Do not submit your package separately to JOSS
Are you OK with Reviewers Submitting Issues and/or pull requests to your Repo Directly?
This option will allow reviewers to open smaller issues that can then be linked to PR's rather than submitting a more dense text based review. It will also allow you to demonstrate addressing the issue via PR links.
Code of conduct
P.S. *Have feedback/comments about our review process? Leave a comment here
Editor and Review Templates
Editor and review templates can be found here
The text was updated successfully, but these errors were encountered: