formater et afficher les colonnes d'un fichier dans XYplot Jfreechart
slt ;
dubutant au java et
j'ai besoin un programme java qui formate un fichier et affiche les colonnes suivanets EL(deg)=X AZ(deg)=Y dans un plot jfreechart comme suite:
le contenu de fichier :
FILE_HEADER
FILE_TYPE:= APF
FILE_FORMAT:= DSG.ICD.92800.ASTR
GEN_DATE:= 2015/01/12 14:05:03
GEN_APP_NAME:= QUARTZ++
GEN_APP_RLS:= LEO
END_FILE_HEADER
*************************************************************************
SAT_ID:= ALSA
ANTENNA:= A2ORAN ON
*************************************************************************
** Date EL(deg) AZ(deg) Range(km) Doppler(Df/f)
*************************************************************************
STEP:= 2015/01/18 21:09:02.000 4.811 149.989 2545.722 0.000022275698
STEP:= 2015/01/18 21:09:03.000 4.879 149.950 2539.045 0.000022269886
STEP:= 2015/01/18 21:09:04.000 4.948 149.911 2532.369 0.000022264001
STEP:= 2015/01/18 21:09:05.000 5.016 149.872 2525.695 0.000022258042
STEP:= 2015/01/18 21:09:06.000 5.086 149.832 2519.023 0.000022252010
STEP:= 2015/01/18 21:09:07.000 5.155 149.792 2512.352 0.000022245902
STEP:= 2015/01/18 21:09:08.000 5.225 149.752 2505.684 0.000022239718
STEP:= 2015/01/18 21:09:09.000 5.295 149.712 2499.017 0.000022233458
STEP:= 2015/01/18 21:09:10.000 5.366 149.671 2492.352 0.000022227121
STEP:= 2015/01/18 21:09:11.000 5.436 149.631 2485.689 0.000022220706
STEP:= 2015/01/18 21:09:12.000 5.507 149.590 2479.028 0.000022214213
je veux afficher seulement EL(deg) AZ(deg) comme ca :
4.811 149.989
4.879 149.950
4.948 149.911
5.016 149.872
5.086 149.832
5.155 149.792
5.225 149.752
5.295 149.712
5.366 149.671
5.436 149.631
5.507 149.590
Merci de m'aider mes amis
formater et afficher colonnes de fichier dans plot Jfreechart
slt;
j'arrive pas a formater bien le fichier pour prendre seulement EL(deg) et AZ(deg) et les afficher dans le plot , quelqun peux m'aider
voici le contenu de fichier et ce qui je veux + le code source
le contenu de fichier :
FILE_HEADER
FILE_TYPE:= APF
FILE_FORMAT:= DSG.ICD.92800.ASTR
GEN_DATE:= 2015/01/12 14:05:03
GEN_APP_NAME:= QUARTZ++
GEN_APP_RLS:= LEO
END_FILE_HEADER
*************************************************************************
SAT_ID:= ALSA
ANTENNA:= A2ORAN ON
*************************************************************************
** Date EL(deg) AZ(deg) Range(km) Doppler(Df/f)
*************************************************************************
STEP:= 2015/01/18 21:09:02.000 4.811 149.989 2545.722 0.000022275698
STEP:= 2015/01/18 21:09:03.000 4.879 149.950 2539.045 0.000022269886
STEP:= 2015/01/18 21:09:04.000 4.948 149.911 2532.369 0.000022264001
STEP:= 2015/01/18 21:09:05.000 5.016 149.872 2525.695 0.000022258042
STEP:= 2015/01/18 21:09:06.000 5.086 149.832 2519.023 0.000022252010
STEP:= 2015/01/18 21:09:07.000 5.155 149.792 2512.352 0.000022245902
STEP:= 2015/01/18 21:09:08.000 5.225 149.752 2505.684 0.000022239718
STEP:= 2015/01/18 21:09:09.000 5.295 149.712 2499.017 0.000022233458
STEP:= 2015/01/18 21:09:10.000 5.366 149.671 2492.352 0.000022227121
STEP:= 2015/01/18 21:09:11.000 5.436 149.631 2485.689 0.000022220706
STEP:= 2015/01/18 21:09:12.000 5.507 149.590 2479.028 0.000022214213
je veux afficher seulement EL(deg) AZ(deg) comme ca :
4.811 149.989
4.879 149.950
4.948 149.911
5.016 149.872
5.086 149.832
5.155 149.792
5.225 149.752
5.295 149.712
5.366 149.671
5.436 149.631
5.507 149.590
le code java est:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
| import java.awt.Color;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class Trwo extends ApplicationFrame {
public Trwo(final String title) {
super(title);
final XYDataset dataset = createDataset();
final JFreeChart chart = createChart(dataset);
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(1200, 1100));
setContentPane(chartPanel);
}
private XYDataset createDataset() {
final XYSeries series1 = new XYSeries("SLMM");
final XYSeries series2 = new XYSeries("FSPM");
XYSeries series = new XYSeries("passage");
final XYSeriesCollection dataset = new XYSeriesCollection();
try {
FileInputStream fstream = new FileInputStream("/root/Bureau/data1");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
StringBuffer buffer = new StringBuffer();
while ((strLine = br.readLine()) != null) {
buffer.append(strLine);
}
String message = buffer.toString();
message = message.replaceAll(" ", ";");
message = message.replaceAll(" ", ";");
message = message.replaceAll(" ", ";");
message = message.replaceAll(";;", ";");
String[] splitMessage = message.split("\n");
for (int i = 14; i < splitMessage.length; i++) {
double x = 0.0, y = 0.0;
String algType = "direct";
String[] insideSplit = splitMessage[i].split(";");
if (insideSplit[0].equalsIgnoreCase("STEP:=")) {
algType = "indirect";
}
for (int j = 1; j < insideSplit.length; j++) {
String[] valueSplit = insideSplit[j].split(";");
if (valueSplit[0].equalsIgnoreCase("X")) {
x = Double.parseDouble(valueSplit[1]);
} else {
y = Double.parseDouble(valueSplit[1]);
}
//System.out.println(valueSplit[1]);
}
if (!algType.equalsIgnoreCase("direct")) {
System.out.println("X :" + x + " Y:" + y);
series1.add(x, y);
} else {
System.out.println("X :" + x + " Y:" + y);
series2.add(x, y);
}
}
dataset.addSeries(series1);
dataset.addSeries(series2);
} catch (Exception e) {
e.printStackTrace();
}
return dataset;
}
private JFreeChart createChart(final XYDataset dataset) {
final JFreeChart chart = ChartFactory.createXYLineChart(
"passage",
"X",
"Y",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false);
chart.setBackgroundPaint(Color.white);
final XYPlot plot1 = chart.getXYPlot();
plot1.setBackgroundPaint(Color.lightGray);
plot1.setDomainGridlinePaint(Color.white);
plot1.setRangeGridlinePaint(Color.white);
final XYPlot plot2 = chart.getXYPlot();
plot2.setBackgroundPaint(Color.lightGray);
plot2.setDomainGridlinePaint(Color.white);
plot2.setRangeGridlinePaint(Color.white);
return chart;
}
public static void main(final String[] args) {
final Trwo demo = new Trwo("Multi Line Chart");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
} |
Merci de m'aider mes amis