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 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
<link rel="stylesheet" media="screen" type="text/css" href="./design.css" />
<link rel="stylesheet" media="print" type="text/css" href="./print.css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div class="dokuwiki export">
<p>
<em>Translations of this page are also available in the following languages:</em> <a href="geda-data_plotting_improvements.ru.html" class="wikilink1" title="geda-data_plotting_improvements.ru.html">Русский</a>.
</p>
<h1 class="sectionedit1"><a name="simulation_data_plotting" id="simulation_data_plotting">Simulation Data Plotting</a></h1>
<div class="level1">
</div>
<!-- EDIT1 SECTION "Simulation Data Plotting" [129-169] -->
<h2 class="sectionedit2"><a name="rationale" id="rationale">Rationale</a></h2>
<div class="level2">
<p>
This article discusses on how data plotting can be improved.
There are various programs out there, each has it's own pros and cons:
</p>
<ul>
<li class="level1"><div class="li"> <a href="http://home.nc.rr.com/gtkwave/" class="urlextern" title="http://home.nc.rr.com/gtkwave/" rel="nofollow"> gtkwave</a>: a great viewer for digital simulation data</div>
</li>
<li class="level1"><div class="li"> <a href="http://www.telltronics.org/software/gwave/" class="urlextern" title="http://www.telltronics.org/software/gwave/" rel="nofollow"> gwave</a>: analog waveform viewer</div>
</li>
<li class="level1"><div class="li"> <a href="http://sourceforge.net/projects/kjwaves" class="urlextern" title="http://sourceforge.net/projects/kjwaves" rel="nofollow"> KJWaves</a>: simulation frontend with plotting window</div>
</li>
<li class="level1"><div class="li"> buildin plotting functions in ngspice</div>
</li>
<li class="level1"><div class="li"> gnuplot / octave / scipy / … or similar programs as postprocessing script languages</div>
</li>
<li class="level1"><div class="li"> …</div>
</li>
</ul>
<p>
There have been various suggestions on the mailing lists about the feature a plotting program could have:
</p>
<ul>
<li class="level1"><div class="li"> postprocessing: integrate, add, diff, fft, …</div>
</li>
<li class="level1"><div class="li"> view, examine: cursors, multiple windows, …</div>
</li>
<li class="level1"><div class="li"> data import, file format: circuit simulation data (gnucap, spice, …) <a href="http://www.hdfgroup.org/HDF5/" class="urlextern" title="http://www.hdfgroup.org/HDF5/" rel="nofollow"> hdf5 </a>, measured data from oscilloscopes, spectrum analysers, …</div>
</li>
<li class="level1"><div class="li"> data export, file format: hdf5, pictures (png, ps, …), ascii</div>
</li>
<li class="level1"><div class="li"> communication backends: dbus, …</div>
</li>
<li class="level1"><div class="li"> extension/scripting language</div>
</li>
</ul>
</div>
<!-- EDIT2 SECTION "Rationale" [170-1261] -->
<h2 class="sectionedit3"><a name="draft1extend_gtkwaves" id="draft1extend_gtkwaves">Draft1: Extend gtkwaves</a></h2>
<div class="level2">
<ul>
<li class="level1"><div class="li"> write some import functions for analog data</div>
</li>
</ul>
</div>
<!-- EDIT3 SECTION "Draft1: Extend gtkwaves" [1262-1347] -->
<h2 class="sectionedit4"><a name="draft2improve_gwave" id="draft2improve_gwave">Draft2: improve gwave</a></h2>
<div class="level2">
<p>
gwave requires an old <a href="http://www.gnu.org/software/guile-gtk/" class="urlextern" title="http://www.gnu.org/software/guile-gtk/" rel="nofollow"> guile-gtk</a> for GTK1.2.
</p>
<ul>
<li class="level1"><div class="li"> port gwave to guile-gtk2.0 for GTK2.x</div>
</li>
<li class="level1"><div class="li"> remove the guile-gtk requirement. Maybe create a native gtk2 application with libglade?</div>
</li>
</ul>
<p>
A rewrite of gwave:
</p>
<ul>
<li class="level1"><div class="li"> gaw: <a href="http://www.rvq.fr/linux/gaw.php" class="urlextern" title="http://www.rvq.fr/linux/gaw.php" rel="nofollow">http://www.rvq.fr/linux/gaw.php</a></div>
</li>
</ul>
</div>
<!-- EDIT4 SECTION "Draft2: improve gwave" [1348-1672] -->
<h2 class="sectionedit5"><a name="draft3search_for_existing_data_exploring_programs" id="draft3search_for_existing_data_exploring_programs">Draft3: Search for existing data exploring programs</a></h2>
<div class="level2">
<p>
Are there any programs out there that can show and postprocess simulation data?
If yes, how can they be extended to work as a waveform viewer for the simulators (gnucap, ngspice)?
</p>
</div>
<!-- EDIT5 SECTION "Draft3: Search for existing data exploring programs" [1673-1919] -->
<h2 class="sectionedit6"><a name="draft4a_new_plotting_application" id="draft4a_new_plotting_application">Draft4: A new plotting application</a></h2>
<div class="level2">
<p>
Some vague notes on how a new plotting application could be written.
This notes currently relate on python as programming language.
</p>
<ul>
<li class="level1"><div class="li"> the <acronym title="Graphical User Interface">GUI</acronym> could be created with <a href="http://www.jamesh.id.au/software/libglade/" class="urlextern" title="http://www.jamesh.id.au/software/libglade/" rel="nofollow">libglade</a></div>
</li>
<li class="level1"><div class="li"> the data storage format could be <a href="http://www.hdfgroup.org/HDF5/" class="urlextern" title="http://www.hdfgroup.org/HDF5/" rel="nofollow"> hdf5 </a>, maybe together with <a href="http://www.pytables.org/moin" class="urlextern" title="http://www.pytables.org/moin" rel="nofollow">pytables</a></div>
</li>
<li class="level1"><div class="li"> the plotting engine could be <a href="http://matplotlib.sourceforge.net/" class="urlextern" title="http://matplotlib.sourceforge.net/" rel="nofollow"> matplotlib</a> (png, ps export included)</div>
</li>
<li class="level1"><div class="li"> postprocessing could be done with <a href="http://www.scipy.org/" class="urlextern" title="http://www.scipy.org" rel="nofollow"> scipy</a></div>
</li>
<li class="level1"><div class="li"> the scripting language is python. Thus import filter to hdf5 can easily be written. Even an integrated python shell would be possible. Seen on <a href="http://code.enthought.com/mayavi2-screenshot.shtml" class="urlextern" title="http://code.enthought.com/mayavi2-screenshot.shtml" rel="nofollow"> MayaVi 2</a></div>
</li>
</ul>
<p>
Disadvantage: This configuration has a huge rucksack of additional required packages.
</p>
<p>
<strong>Update</strong>
</p>
<p>
There are now some programs out there, that use the python, numpy, matplotlib tool chain:
</p>
<ul>
<li class="level1"><div class="li"> oscopy: <a href="http://repo.or.cz/w/oscopy.git" class="urlextern" title="http://repo.or.cz/w/oscopy.git" rel="nofollow">http://repo.or.cz/w/oscopy.git</a></div>
</li>
<li class="level1"><div class="li"> dataplot: <a href="http://www.h-renrew.de/h/dataplot/dataplot.html" class="urlextern" title="http://www.h-renrew.de/h/dataplot/dataplot.html" rel="nofollow">http://www.h-renrew.de/h/dataplot/dataplot.html</a>, <a href="http://repo.or.cz/w/dataplot.git" class="urlextern" title="http://repo.or.cz/w/dataplot.git" rel="nofollow">http://repo.or.cz/w/dataplot.git</a></div>
</li>
<li class="level1"><div class="li"> gsim: <a href="http://kiwiki.fmtnuni.sk/mediawiki/index.php/Description_of_gsim" class="urlextern" title="http://kiwiki.fmtnuni.sk/mediawiki/index.php/Description_of_gsim" rel="nofollow">http://kiwiki.fmtnuni.sk/mediawiki/index.php/Description_of_gsim</a></div>
</li>
</ul>
</div>
<!-- EDIT6 SECTION "Draft4: A new plotting application" [1920-] --></div>
</body>
</html>
|