CDAT / vcs

Visualization Control System
19 stars 13 forks source link

add evenly spaced streamlines to vcs #180

Closed danlipsa closed 7 years ago

danlipsa commented 7 years ago

Comments from @glpotter Here is an example of the vcs and the grads streamlines. I used a seed of 700 to make it look like the grads. Both are very crowded. The grads fills in the lower values. Grads has a gray continental outline - makes it hard to see where the lines are drawn. In a real application the entire global high not be plotted - maybe only regions.

vcs_test

grads_streamlines

Here is a paper that implements this: http://bjobard.perso.univ-pau.fr/Research/Publications/1997_Jobard_Lefer__Creating_Evenly-Spaced_Streamlines_of_Arbitrary_Density.pdf

glpotter commented 7 years ago

There is one region of concern in the VCS plot. In the Southern Hemisphere, about 50 south at 0 longitude the vcs plot is blank but the grads plot shows a maximum velocity. The VCS plot looks like it is masked out (or faded out).

danlipsa commented 7 years ago

@glpotter Try increasing the number of seeds. The empty spots in the vcs plot result from the seed placement I think.

williams13 commented 7 years ago

It would be nice to have the blue marble background with the streamlines. This will help out with identifying the continents and is something that GrADS cannot do.

-Dean

From: Dan Lipsa notifications@github.com Reply-To: UV-CDAT/vcs reply@reply.github.com Date: Tuesday, April 25, 2017 at 9:58 AM To: UV-CDAT/vcs vcs@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: Re: [UV-CDAT/vcs] add evenly spaced streamlines to vcs (#180)

@glpotterhttps://github.com/glpotter Try increasing the number of seeds. The empty spots in the vcs plot result from the seed placement I think.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/UV-CDAT/vcs/issues/180#issuecomment-297095427, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ACrXKSCCzBaEM-jeNYgmyuHjCXh54zhsks5rziZMgaJpZM4NHwGw.

danlipsa commented 7 years ago

@williams13 @aashish24 @doutriaux1 That is possible but it requires work from the user to get the png to fit nicely. It would be better to add an option to vcs to simply add a background png to a map plot and have vcs do all calculations. See the following for the vcs issue: https://github.com/UV-CDAT/vcs/issues/162

doutriaux1 commented 7 years ago

@williams13 @danlipsa yes #162 is definitely on my list for next release. I think that with @danlipsa fixes it might be fairly easy, but definitely post-release.

durack1 commented 7 years ago

@williams13 the ability for vcs to deal with various levels of opacity is something that I have never encountered in other packages, and made the figure in https://github.com/UV-CDAT/vcs/issues/162#issuecomment-294951817 possible.. Making the generation of such figures easier for a user would certainly be a strong selling point

williams13 commented 7 years ago

Agreed!

-Dean

From: "Paul J. Durack" notifications@github.com Reply-To: UV-CDAT/vcs reply@reply.github.com Date: Tuesday, April 25, 2017 at 11:37 AM To: UV-CDAT/vcs vcs@noreply.github.com Cc: Dean Williams williams13@llnl.gov, Mention mention@noreply.github.com Subject: Re: [UV-CDAT/vcs] add evenly spaced streamlines to vcs (#180)

@williams13https://github.com/williams13 the ability for vcs to deal with various levels of opacity is something that I have never encountered in other packages, and made the figure in #162 (comment)https://github.com/UV-CDAT/vcs/issues/162#issuecomment-294951817 possible.. Making the generation of such figures easier for a user would certainly be a strong selling point

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/UV-CDAT/vcs/issues/180#issuecomment-297125293, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ACrXKQim3UAgNEzEWgeCKl5EB21OO64vks5rzj1fgaJpZM4NHwGw.

danlipsa commented 7 years ago

@glpotter @doutriaux1 @aashish24 @durack1 @williams13 Talking about good looking streamlines: Here is an image generated with 'line integral convolution' algorithm. This is already available in ParaView so it would be easier to add it to vcs. Note this is generated as an image, so we won't be able to generate this as vector graphics. Is this something that would be usefull?

lic

danlipsa commented 7 years ago

@glpotter @doutriaux1 @aashish24 @durack1 @williams13 Here is a nice particle animation for clt.nc, also done with ParaView also image based: https://youtu.be/6O-4_ui6hAs

doutriaux1 commented 7 years ago

@danlipsa I like it a lot, but we know they will ask for vector graphics... What happen when you use this and save a pdf or svg? it embeds the bitmap?

danlipsa commented 7 years ago

The particle animation was designed to be a way you show your data (a representation in ParaView terminology) so I doubt it will let you save the geometry. Saving this in PDF I could only save the first step which has only the seeds so I could not tell if its vector or image. LIC is an image by design.

danlipsa commented 7 years ago

@glpotter @doutriaux1 @aashish24 @williams13 Here is a screenshot for the newly developed evenly spaced streamlines in ParaView. Seems grads is doing something different - maybe discovers critical points and seeds based on that. Seems that the algorithm we implemented is similar with what matplotlib is doing https://matplotlib.org/examples/images_contours_and_fields/streamplot_demo_features.html

evenly-spaced-streamlines

glpotter commented 7 years ago

@danlipsa This looks good to me. What is the little legend on the lower left side? Can we try it?

danlipsa commented 7 years ago

@glpotter This is called the 'Orientation Axes' in ParaView. It is useful for 3D data. When the user rotates the data the Orientation Axes are rotated as well, so the user understands the viewing direction. For 2D data it cannot serve the same purpose. What would you like to use it for?

danlipsa commented 7 years ago

Note that we don't detect loops - so one streamlines can get crowded if it has loops. If we want we can add the loop detection described in: https://pdfs.semanticscholar.org/3962/b23fce9beba0589ff3fb4b3385408f9b9a6e.pdf

glpotter commented 7 years ago

@danlipsa I think you should add the loop detection. Grads and Matplotlib both seem to have it

williams13 commented 7 years ago

This looks really good to me. It makes me wonder if we can produce a 3D streamline similar to ParaView, then the legend in the lower left would be warranted.

Best regards, Dean

From: Jerry Potter notifications@github.com Reply-To: UV-CDAT/vcs reply@reply.github.com Date: Tuesday, May 30, 2017 at 3:40 PM To: UV-CDAT/vcs vcs@noreply.github.com Cc: Dean Williams williams13@llnl.gov, Mention mention@noreply.github.com Subject: Re: [UV-CDAT/vcs] add evenly spaced streamlines to vcs (#180)

@danlipsahttps://github.com/danlipsa I think you should add the loop detection. Grads and Matplotlib both seem to have it

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/UV-CDAT/vcs/issues/180#issuecomment-305029147, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ACrXKVzgPeY7VJ8Htr1tEjmu30HceBMMks5r_JrQgaJpZM4NHwGw.

danlipsa commented 7 years ago

@glpotter Sounds good. I'll work on adding loop detection so that we eliminate the cluttering caused by loops. @williams13 Not sure if vcs3D can produce streamlines but we can certainly add that if we need to.

danlipsa commented 7 years ago

@glpotter Do you have the code and data used to produce the grads streamlines? We'd like to investigate what are they are doing and maybe provide an option to do something similar in vcs. Thanks!

doutriaux1 commented 7 years ago

@danlipsa see: http://cola.gmu.edu/grads/downloads.php

danlipsa commented 7 years ago

@glpotter @doutriaux1 @aashish24 @williams13 Here is the same picture as before but with no loops. evenly-spaced-streamlines-no-loops

doutriaux1 commented 7 years ago

@danlipsa that looks really good!

aashish24 commented 7 years ago

@glpotter @doutriaux1 @aashish24 @williams13 Here is the same picture as before but with no loops.

this looks really cool @danlipsa @doutriaux1 Can you post another picture with white background and perhaps a lighter color map?

danlipsa commented 7 years ago

@aashish24 What is wrong with my color palette? :smile: The problem with the white background, which I realized while generating the included image is that most color palettes have some white/gray in them which is not visible on white background. Of course, paper is white, so we'll need pallets that work well on white. The best I found is the infamous rainbow. Note there is another important difference with this new image. evenly-spaced-streamlines

doutriaux1 commented 7 years ago

@danlipsa our default palete is viridis

danlipsa commented 7 years ago

@doutriaux1 Oh, yes, that is at the very end in ParaView: evenly-spaced-streamlines

danlipsa commented 7 years ago

@glpotter @williams13 @doutriaux1 @aashish24 The evenly spaced streamlines are in the nightly VCS packages and the streamline tutorial (iPython notebook) is updated to include a section on evenly spaced streamlines. Please try it out and let me know if you have any comments. https://uvcdat.llnl.gov/tutorials.html