NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
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 fieldthank you hope to hear from you soonIsaac
// 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
visad
archives: