Re: visad field

Hello Isaac,

according to the email header, you have only sent your question to
me, instead of the list.  So, I'm cc-ing the list in my reply. :)

I have not used the TextAdapter, so I am not sure if the ordering
of the column headers is important.  ie. perhaps the second line
in the data file needs to be:
isotopicMass, pi, Ratio, name(text)
which follows the order of the field's math-type on the first line...

Before sending this email, I wrote some sample code and tested
it.  The ordering of the column names does not matter. :)

Note that the sample code is attached.  Place it in the same
directory as your data-file and run "java TestAdapter".

The sample code extracts each column into its own array.
It then prints the values out for each sample.

Hope this helps,
Jim Koutsovasilis
Bureau of Meteorology, Australia
jim@xxxxxxxxxx <mailto:jim@xxxxxxxxxx>

Brobbey,Isaac wrote:

hi all,

i am having a little problem with how to retrive back my data from a field;

i have the following data in a file called flat54xe.txt

(isotopicMass, pi) -> (Ratio,name(Text)) Ratio, isotopicMass, pi,name(Text) 50 0 0 "ACTINA_HUMAN"
50 25000  0 "ACTINW_HUMAN"
50 25000  0 "ACTINQ_HUMAN"
50 25000 14 "ACTINM_HUMAN"

then i make a field out of the file by doing
final FieldImpl fieldx
     (FieldImpl) new TextAdapter("flat54xe.txt").getData();

can you show me how to get back all the first column values(that is the
50's), then the second, followed by the third?
i have the following but it doesn't work:

for (int i=0; i<ratiox.length; i++) {
            Tuple data = (Tuple)fieldx.getSamples(i);
          double[][]   ratiox =data.getValues();
        System.out.println("i = "+i+"  ratiox = "+ratiox[0][i]);
i want to get all the data back from the field
thank you hope to hear from you soon


// Java
import java.rmi.RemoteException;

// VisAD
import visad.FieldImpl;
import visad.Real;
import visad.Set;
import visad.Text;
import visad.Tuple;
import visad.VisADException;

 * A simple class to illustrate the use of a TextAdapter.
public class TestAdapter {

        public static final void main( String [] args_IN )
                throws VisADException, RemoteException, IOException

                final TextAdapter adapter = new TextAdapter( "flat54xe.txt" );
                final FieldImpl fieldx = (FieldImpl) adapter.getData();

                final int numSamples = fieldx.getLength();

                final float [] isotopicMassValues = new float[numSamples];
                final float [] piValues = new float[numSamples];
                final double [] ratioxValues = new double[numSamples];
                final String [] nameValues = new String[numSamples];

                // Get the domain samples.
                final Set set = fieldx.getDomainSet();
                final float [][] domainSamples = set.getSamples();

                // For each sample, extract the domain and
                // range values into separate arrays.
                for (int i=0; i<numSamples; i++)

                        isotopicMassValues[i] = domainSamples[0][i];
                        piValues[i] = domainSamples[1][i];

                        // Get the range-data for this sample in the field.
                        final Tuple data = (Tuple)fieldx.getSample(i);

                        // Extract the "ratiox" value from the range-data.
                        final Real ratiox = (Real) data.getComponent(0);
                        ratioxValues[i] = ratiox.getValue();

                        // Extract the "name" value from the range-data.
                        final Text name = (Text) data.getComponent(1);
                        nameValues[i] = name.getValue();

                } // for (i<numSamples)

                for ( int j = 0; j < numSamples; ++j )
                        System.out.println( "Sample " + j +
                                ": isotopicMass = " + isotopicMassValues[j] +
                                ", pi = " + piValues[j] +
                                ", ratiox = " + ratioxValues[j] +
                                ", name = " + nameValues[j]

                } // for (j<numSamples)

        } // TestAdapter.main()

} // class TestAdapter

// EndOfFile