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.
---
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 0 0 "ACTINR_HUMAN"
50 0 0 "ACTINZ_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
Isaac
// Java
import java.io.IOException;
import java.rmi.RemoteException;
// VisAD
import visad.FieldImpl;
import visad.Real;
import visad.Set;
import visad.Text;
import visad.Tuple;
import visad.VisADException;
import visad.data.text.TextAdapter;
/**
* 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