spacepy / dbprocessing

Automated processing controller for heliophysics data
5 stars 4 forks source link

Create visualization of product relationships #115

Open jtniehof opened 2 years ago

jtniehof commented 2 years ago

In trying to cut the magEIS sample database down to size for #34, I'm finding it's kind of tricky to figure out which products to keep in order to maintain a full progression from L0 through to L3. It would be nice to have a tool to make a GraphViz of these relationships to visualize what products flow to which.

Proposed enhancement

Script which runs against the database and produces GraphViz file with all products as nodes and connections showing parent-child relationships (potentially including the process that does so, maybe as a command line argument to choose.) Potentially limiting to those relationships including a particular product (so you can trace all the inputs to one product, or all its outputs.)

Alternatives

An automatic search for subgraphs in the product dependencies would potentially address my specific use case, but might be harder to implement.

OS, Python version, and dependency version information:

Linux-4.15.0-166-generic-x86_64-with-Ubuntu-18.04-bionic
sys.version_info(major=2, minor=7, micro=17, releaselevel='final', serial=0)
sqlalchemy=1.1.11

Version of dbprocessing

Current git master.

Closure condition

When tool implemented and merged.

jtniehof commented 2 years ago

https://github.com/spacepy/dbprocessing/blob/master/developer/scripts/table_graph.py might be a handy place to work from.