[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: plot structured data II



David Fanning wrote:
> 
> Dirk Burose (dirk.burose@uni-bonn.de) writes:
> 
> > sorry for being unprecise last time.
> > What I like to know is how to get access to the data in the structure or
> > as David Fanning already said how to tear that structure apart and get a
> > 2d array for further use.
> > The data in the structure is already gridded and I know how to use
> > surface function but until now I can't find information how to use it
> > with structured data sets.
> > thanks a lot
> 
> Structures are de-referenced with a "dot". You want
> something like this:
> 
>    Surface, struct.mydata, struct.my_xvector, struct.my_yvector
> 
> Sometimes structures have structures inside them. Then you
> use two dots, etc.:
> 
>    Surface, struct.mydata.grid, struct.mydata.xvec, struct.mydata.yvec

And sometimes you are using structures entirely inappropriately, like
when you really want an array instead, but are using read_ascii to get
it out of file.  You might try crafting your own formatted read and
avoid read_ascii altogether, reading it directly into a 15xn array. 
It's really pretty simple.  

Read_ascii is best for multi-variable plots, not higher dimensional
data.  If you are really stuck with a structure of fields with columns
of data the same length, and you'd like to convert it to a 2d array,
try:

for i=0,n_tags(st)-1 do $
   if n_elements(a) eq 0 then a=1#st.(i) else a=[a,1#st.(i)]

But really, a better solution is to use the correct data type in the
first place.

Good luck,

JD