Thank you very much for the answers, it clarified my confusion regarding the various terms and their uses (esp. #4).
As a follow-up, can you please correct/comment on my understanding of the contents of snap-examples:
-
snap-engine-python-scripts- This example shows how to use Snap engine API classes in a python script thru the snappy module. Why does this have a pom though? Can I build this with maven? How will it function as an installable .nbm file if it’s only a script (or I’m terribly uninformed of the usage of pom). -
snap-engine-python-operator- This is a complete operator. layer.xml defines where it goes in Snap, -info.xml defines the gui and the intended parameters. -op.py defines the operator class and invokes snappy to pull parameters as described (obtained?) from -info.xml and passes it to variables readable by the actual algorithm implementing script that is -algo.py. Well described here. You’ve said that this is an implementation of an operator. Does this mean that the actual operator is similar tosnap-engine-python-scriptsinstead? -
snap-engine-java-operator- Same as above, but the equivalent -op.py, -info.xml, and -algo.py is condensed to one -.java file. Which makes sense since Snap’s “native” API is a Java API. -
snap-engine-otb-python-operator- This apparently uses the Orfeo toolbox module. The calculation is done in the -op.py file itself. Is this considered an imported computational Java module? Although it still uses numpy, so like a hybrid? Like Jython? -
snap-jython-examples- Some Jython examples. It seems that Jython is used for more intricate operations (like the Spectral Unmixing tool perhaps?) instead of scripting simple algorithms.
For the above examples, I think I already have a slight understanding, but I don’t know how these other examples relate to them:
snap-desktop-basic-multisnap-desktop-basic-singlesnap-desktop-examplessnap-engine-examples
Are they directly built to Snap? Like an add-on to a custom Snap installation?
I am currently making progress in studying snap-engine-python-operator and s2-rut to get a better handle (hopefully I can transition to java later but I’ll stick to python for now) on how to develop my own plugin. Thank you again.