Building and testing a new connector or processor plugin¶
Develop a new connector or processor plugin following existing examples that can be found in the connector and processor repositories. Some key points to be aware of:
- Follow the prescribed package structure for each plugin, only changing the module and class name as needed.
- Inherit the
GeoEDFPlugin
class and implement the appropriate class method for your plugin (get
,filter
, orprocess
). - You should be able to keep the
__init__
method as is, except for fixing the error messages and required and optional parameter lists. - Each plugin is fashioned as a Python package. Make sure to modify the
setup.py
script to include any Python library dependencies and other static data files. - Each plugin is eventually turned into a Singularity container. A helpful high-level recipe
based on NVIDIA’s HPC Container Maker is provided along with each existing plugin.
Adapt this
recipe.hpccm
file for your plugin. Typically, you would only need to change the plugin name in a few places unless your plugin requires any additional system libraries. Take a look at theOS Packages
section in theHDFEOSShapefileMask
processor’s recipe for ideas.
Once your plugin has been developed and organized in a folder like other existing plugins, you can and should test it before officially submitting it as a pull request (PR) to the GeoEDF repository.
Testing¶
You can test your plugins in GeoEDF’s development environment container. Follow the instructions
in the geoedf/RK_02_EarthCube_GeoEDF_Demo.ipynb
Jupyter notebook which will walk you through the process of
building a Singularity container image of your plugin and then using it in a GeoEDF workflow. You can
use any previously published connector or processor plugin in your testing. A list of these plugins can
be found in this documentation.