JSB to PNG: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
(Made page)
 
m (+-cat: Python Software → Python software)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
JSB to PNG is a tool programmed in python.
It will take a JSBSim file as input and will then output PNG images of the tables in that file.
[[File:JSB-carpet.png|thumb|A carpet plot plot of a 2D table]]
[[File:JSB-carpet.png|thumb|A carpet plot plot of a 2D table]]
[[File:JSB-lines.png|thumb|A lines plot of a 2D table]]
[[File:JSB-lines.png|thumb|A lines plot of a 2D table]]
[[File:JSB-line.png|thumb|A lineplot of a 1D table]]
[[File:JSB-line.png|thumb|A lineplot of a 1D table]]


==See also==
'''JSB to PNG''' will take a JSBSim file as input and will then output PNG images of the tables in that file.
[[Jiff]]


==External links==
It will output both lines and carpet plots for 2D/3D tables. For 1D tables just line plot.
[https://github.com/NikolaiVChr/jsb-to-png JSB to PNG on Github]
 
JSB to PNG is written in Python.
 
== Instructions ==
=== Required libraries ===
JSB to PNG requires Python with '''plotly.express''' and '''plotly.graph_objects''' libraries (recent version).
 
=== JSBSim table requirements ===
Each table in the JSBSim input file that you want to graph '''must''' have <code>name</code> attribute in the <table> tag. That name will also be used a Y-axis title in the graphs. Do not have multiple tables with same name since its used in naming the image files also.
 
For 2D and 3D tables <code><nowiki><independentVar></nowiki></code> tags '''must''' all have lookup attributes.
 
Example:
<syntaxhighlight lang="xml">
                <table name="Groundeffect normal force">
                    <independentVar lookup="row">aero/h_b-mac-ft</independentVar>
                    <independentVar lookup="column">aero/alpha-deg</independentVar>
                    <tableData>
                              0.0    5.0    15.0    90.0
                        0.0  0.0000  0.2000  0.6500  -0.2500
                        2.2  0.0000  0.0000  0.0000  0.0000
                    </tableData>
                </table>
</syntaxhighlight>
 
=== Running JSB to PNG ===
JSB to PNG is used from the command line with this syntax:
 
python jsb-to-png.py [filename]
 
If no filename is specified as commandline argument then <code>jsb-test.xml</code> is assumed.
 
When run, a folder will be created in working folder named same as the JSBSim input filename, but without the xml extension.
 
For 2D and 3D tables it will graph both a lines and a carpet plot.
 
In that folder PNG of the tables will be output, it '''will''' overwrite images if the folder is not empty.
 
== Related content ==
=== Forum topic ===
* {{forum link|t=36940|title=JSBSim tables to PNG program}}
 
=== Source code ===
* [https://github.com/NikolaiVChr/jsb-to-png JSB to PNG on Github]
 
== External links ==
* [https://github.com/alanjt/Jiff Jiff (C++ program that does approx the same thing)]


{{JSBSim}}
{{JSBSim}}
[[Category:Python software]]

Latest revision as of 09:20, 25 March 2020

A carpet plot plot of a 2D table
A lines plot of a 2D table
A lineplot of a 1D table

JSB to PNG will take a JSBSim file as input and will then output PNG images of the tables in that file.

It will output both lines and carpet plots for 2D/3D tables. For 1D tables just line plot.

JSB to PNG is written in Python.

Instructions

Required libraries

JSB to PNG requires Python with plotly.express and plotly.graph_objects libraries (recent version).

JSBSim table requirements

Each table in the JSBSim input file that you want to graph must have name attribute in the

tag. That name will also be used a Y-axis title in the graphs. Do not have multiple tables with same name since its used in naming the image files also. For 2D and 3D tables <independentVar> tags must all have lookup attributes. Example:
                 <table name="Groundeffect normal force">
                    <independentVar lookup="row">aero/h_b-mac-ft</independentVar>
                    <independentVar lookup="column">aero/alpha-deg</independentVar>
                    <tableData>
                               0.0     5.0    15.0     90.0
                        0.0  0.0000  0.2000  0.6500  -0.2500
                        2.2  0.0000  0.0000  0.0000   0.0000
                    </tableData>
                </table>

Running JSB to PNG

JSB to PNG is used from the command line with this syntax:

python jsb-to-png.py [filename]

If no filename is specified as commandline argument then jsb-test.xml is assumed.

When run, a folder will be created in working folder named same as the JSBSim input filename, but without the xml extension.

For 2D and 3D tables it will graph both a lines and a carpet plot.

In that folder PNG of the tables will be output, it will overwrite images if the folder is not empty.

Related content

Forum topic

Source code

External links