Re: 3D-Plot with geographical coordinates in xy-direction [message #36753 is a reply to message #36734] |
Fri, 17 October 2003 12:35   |
Rick Towler
Messages: 821 Registered: August 1998
|
Senior Member |
|
|
"David Fanning" wrote in message...
> Klemens Barfus writes:
>
>> Once again the question from above:
>> I try to visualize 3d-data of an atmospheric model. Coordinates in x-
>> and y-direction are in geographical coordinates and z is in m.
>> I thought of using SCALE3D and Map_set to generate the
>> Coordinate-System. This doesn't work, because vertikal lines in the
>> coordianate system are not plotted. Horizontal lines look fine, though I
>> do not know if it is a buck from the program that it works.
>> Does anybody of you working atmospheric data has a tip or some example
>> code for me ?
>
> I don't know exactly how to do this, but I do know
> I would NOT be using IDL direct graphics to do it.
> That's a fool's game, it seems to me. :-)
>
> I think I would try to do something like the Fly-Through
> demo, with some kind of map as the base of the elevation
> data. Presumably RSI knows how to create map projections
> in object graphics. Maybe you could get them to share
> that information with the rest of us. :-)
I agree with David that object graphics would be far more flexible but I
can't claim it will be easier than a direct graphics approach. Then again,
it might. I dropped direct graphics a long time ago.
What sort of visualization are you going for? How many layers in z? Do you
just want to plot a surface where x/y are in geographical coords or
something more complicated?
Regardless of the details, use the MAP_PROJ_* routines (IDL 5.6+) to convert
your x/y data to and from cartesian coords suitible for use in object
graphics.
If you want to plot some surfaces, use this converted data to create an
IDLgrSurface object. Assuming x,y, and z contain your data and you have
scaled them appropriatly:
oSurface = OBJ_NEW('IDLgrSurface', x, y, z, $
COLOR=[100,100,100], STYLE=1)
oModel = OBJ_NEW('IDLgrModel')
oModel -> Add, oSurface
XOBJVIEW, oModel, /BLOCK
OBJ_DESTROY, oModel
The above will get you started. If you have 6.0 and you want to plot a few
surfaces and annotate then try using the iTools. If you don't have 6.0 or
are opposed to the iTools then look at David's fscSurface program
(www.dfanning.com). And if you are looking to do something entirely
different, at lest the MAP_PROJ_* routines will get you started.
-Rick
|
|
|