satpy icon indicating copy to clipboard operation
satpy copied to clipboard

Add ability to export Scene's dependency tree to a graphviz dot format

Open djhoese opened this issue 1 year ago • 3 comments

This is a proof of concept for something that might be useful. The idea was to create a way to semi-easily convert a series of Satpy dependency relationships into a graphviz graph. Not sure how useful it is, but I wanted to try it. Here's a basic graph for the ABI true_color.

test_graph3

I think this could be cleaned up to treat modifiers differently and shorten the size of each bubble.

  • [ ] Closes #xxxx
  • [ ] Tests added
  • [ ] Fully documented

djhoese avatar Nov 13 '22 20:11 djhoese

Codecov Report

Merging #2272 (220871d) into main (3f53644) will decrease coverage by 0.02%. The diff coverage is 14.28%.

@@            Coverage Diff             @@
##             main    #2272      +/-   ##
==========================================
- Coverage   94.30%   94.27%   -0.03%     
==========================================
  Files         306      306              
  Lines       46039    46053      +14     
==========================================
+ Hits        43416    43418       +2     
- Misses       2623     2635      +12     
Flag Coverage Δ
behaviourtests 4.62% <14.28%> (+<0.01%) :arrow_up:
unittests 94.91% <14.28%> (-0.03%) :arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
satpy/dependency_tree.py 95.54% <14.28%> (-1.86%) :arrow_down:
satpy/node.py 85.24% <14.28%> (-4.32%) :arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

codecov[bot] avatar Nov 13 '22 20:11 codecov[bot]

Coverage Status

Coverage decreased (-0.02%) to 94.867% when pulling 220871da2e468d3b98cff875ccefa52b841de316 on djhoese:feature-graphviz-dep-tree into 3f53644ac757de846121e3f3c6df24b7c80a18b9 on pytroll:main.

coveralls avatar Nov 13 '22 21:11 coveralls

@mraspaud I noticed this PR has been sitting around doing nothing. It might be a nice little utility, but if I remember right your comment on slack when I first made this was something along the lines of "what's the point?". Maybe I should just make it a gist? I admit it doesn't need to be a method on the node classes but might still be interesting to have. Thoughts?

djhoese avatar Nov 09 '23 19:11 djhoese