<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="../../gus_xslt.xsl"?>
<howto
  xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="http://starling.ws/XML/howto.xsd">		
	<head>
      <navigation ToC="Table of Contents" section="yes" topic="yes" subtopic="no" subsubtopic="no" links="yes"/>
	  <cgi img="yes" img_action="../../cgi-bin/gus_web_photo.pl" img_path="../tet/opendx/" />
	  <pdfmarks body="no" section="no" topic="no" subtopic="no" subsubtopic="no"/>
	  <title>OpenDX for RPC-III and RLDA</title>
		<description>Visualizing road load data acquisition files with gus_rpc_edit.pl and OpenDX.</description>
		<keywords>starling, rlda, rpc3, opendx, gus_rpc_edit.pl</keywords>
		<author>Gan Uesli Starling</author>
		<copyright>2004, Gan Uesli Starling</copyright>
	</head>
	<body>
	  <title>OpenDX for RPC-III and RLDA</title>
		<p class="center"><a class="button" href="http://starling.us/tet">&#160;home: http://starling.us/tet&#160;</a>
		  <br/>
			<br/>by &#284;an &#364;esli Starling
			<br/>copyright 2004</p>
			
		<p>Here I employ the free, open source, data visualization program OpenDX to generate 3D models of an RPC-III road load data acquisition (RLDA) file. Within OpenDX itself, the 3D view may be panned, zoomed, rotated, etc. <note><b>Note: </b>Here, alas I can show only JPEGs. So please excuse the too-dark thumbnails, and the slightly fuzzy, larger graphics which they link to. To conserve space (not to mention download time) I&#8217;ve had to convert them from their 1280&#160;x&#160;1024 resolution TIFF format originals.</note></p>
			
	  <section> 
		  <title>Pot Hole Number 3</title>
			<p>Automotive engines are rubber mounted nowadays to isolate noise, vibration and harshness. Presented here are the actual forces recorded from one such engine mount. From among twenty-two events recorded on the proving ground, I have selected the event named <i>pot hole number three</i>. This contained some twenty-plus channels, of which only three pertain to the engine mount. These I&#8217;ve extracted using my very own RPC-3, time history editor written entirely in Perl. Likewise did I perfrom all subsequent editing described below.</p>
			
			<topic>
			  <title>Down-sampling the data</title>
				<p>OpenDX here displays a plot of the forces in Newtons for X (Right), Y (Rear) and Z (Up) of the engine mount during said pot hole event. The parent file was sampled at 512 Hz. But hardware constraints require that I down-sample it to 204.8 Hz for playout on a 3-axis bedplate fixture in the test lab. Below you may see the result. Color shows the force in Newtons as/per the included color bar.</p>
				
<images>
  <img src="tn_rh_engmnt_pz31ds_unfiltered_off-diag-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered_off-diag-view.jpeg"
        caption="Pot hole event #3 &#8212; Off-Diag View">Off-diagonal View</img>
  <img src="tn_rh_engmnt_pz31ds_unfiltered_xy-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered_xy-view.jpeg"
        caption="Pot hole event #3 &#8212;  xy-view">XY View</img>
  <img src="tn_rh_engmnt_pz31ds_unfiltered_xz-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered_xz-view.jpeg"
        caption="Pot hole event #3 &#8212;  xz-view">XZ View</img>
  <img src="tn_rh_engmnt_pz31ds_unfiltered_zy-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered_zy-view.jpeg"
        caption="Pot hole event #3 &#8212;  zy-view">ZY View</img>
</images>
			</topic>			
	  </section> 
		
	  <section> 
		  <title>Data Reduction Methods</title>
			<p>Unreduced RLDA files take forever to play out on account of all those smooth places in between the interesting jouncy stuff. And even the jouncy bits are sure to include little squiggles lacking in interest. On laboratory test rigs however the whole point is to accumulate damage as fast as possible. So automatic algorithms are employed to concatenate only the pot holes, belgian blocks, panic stops, jack rabbit starts, curb island impacts and so on. Below is what pot hole event number three looks like to an elastomeric motor mount when viewed in 3D. OpenDX shows it much more clearly than would any ordinary time history plot.</p>
			<p>My Perl program <code>gus_rpc_edit.pl</code> offers two methods of data reduction: peak-slice &amp; minimum vector envelope deletion. The editing exampled here is deliberately exaggerated so as to more clearly exemplify the characteristics of each. In both cases I have exaggerated by reducing the data too severely, employing a noise band of 20% (as compared against the signal&#8217;s own absolute maximum vector).</p>
			<p><b>How to interpret: </b> each file&#8217;s load vector path is described by colored tube. As seen above, the unedited tube is colored according to magnitude as/per the color bar at top right. It is also the smallest diameter tube. The peak-sliced data file is represented by a medium size magenta tube.	The minimum-vector data file is represented by a large white tube. All three tubes are opaque. Wherever the load vector paths diverge (such that some rainbow data are seen) these are the values which have been reduced.</p>					
			<topic>
			  <title>Peak Slice</title>
				<p>The edtior employs an N-plus-1 channel peak slice algorithm. Thus to peak slice X, Y and Z, a synthetic Pythagorean 4th channel <code>sqrt(&#160;X**2&#160;+ Y**2&#160;+ Z**2&#160;)</code> is temporarilly employed.</p>
				<p>Why do I bother with this? Think... How often does the maximum peak align itself precisely with a major axis? Surely it cannot be guaranteed. But then again, no present method of damage calculation ever takse this into account. Neverthelss, it may be there.</p>
			  <p>Not evident at all in traditional, RPC-III time history plots, but really quite outstanding here is the side effect of vector path distortion resulting from time-dilated peak-slice data. On no account should this be attributed to the exessive noiseband of 20%. It cannot be since equal distortion also occurs at peaks where the unfiltered data show orange and red. No, reduction owing to the 20% noise band only effects squiggles nearer to the mean where unfiltered data show blue. All the rest is a natural result of peak slicing in general.</p>
<images>
  <img src="tn_rh_engmnt_pz31ds_unfiltered-vs-ps_off-diag-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered-vs-ps_off-diag-view.jpeg"
        caption="Pot hole event #3 &#8212; Raw vs Peak-Slice &#8212; Off-Diag View">Off-diagonal View</img>
  <img src="tn_rh_engmnt_pz31ds_unfiltered-vs-ps_xy-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered-vs-ps_xy-view.jpeg"
        caption="Pot hole event #3 &#8212; Raw vs Peak-Slice &#8212; XY View">XY View</img>
  <img src="tn_rh_engmnt_pz31ds_unfiltered-vs-ps_xz-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered-vs-ps_xz-view.jpeg"
        caption="Pot hole event #3 &#8212; Raw vs Peak-Slice &#8212; XZ View">XZ View</img>
  <img src="tn_rh_engmnt_pz31ds_unfiltered-vs-ps_zy-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered-vs-ps_zy-view.jpeg"
        caption="Pot hole event #3 &#8212; Raw vs Peak-Slice &#8212; ZY View">ZY View</img>
</images>
			</topic>
			
			<topic>
			  <title>Minimum Vector</title>
				<p>This method projects an imaginary sphere of radius N out from the XYZ mean. Outside of this radius the path followed by filtered data is concentric with that of the unfiltered. There no red, orange or yellow may be seen because the rainbow tube is of smaller diameter and inside the white tube. Were I to reduce the white tube&#8217;s opacity to semi-transparent (easy to do in OpenDX) then you could see lying within.</p>
				<p>Within the invisible boundary radius the two paths diverge. Thus may be seen many a blue squiggle of the unfiltered date where the white tube traverses straight-line short-cut across the sphere until they both emerge from it, becoming concentric once again.</p>
<images>
  <img src="tn_rh_engmnt_pz31ds_unfiltered-vs-vec_off-diag-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered-vs-vec_off-diag-view.jpeg"
        caption="Pot hole event #3 &#8212; Raw vs Min-Vector &#8212; Off-Diag View">Off-diagonal View</img>
  <img src="tn_rh_engmnt_pz31ds_unfiltered-vs-vec_xy-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered-vs-vec_xy-view.jpeg"
        caption="Pot hole event #3 &#8212; Raw vs Min-Vector &#8212; XY View">XY View</img>
  <img src="tn_rh_engmnt_pz31ds_unfiltered-vs-vec_xz-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered-vs-vec_xz-view.jpeg"
        caption="Pot hole event #3 &#8212; Raw vs Min-Vector &#8212; XZ View">XZ View</img>
  <img src="tn_rh_engmnt_pz31ds_unfiltered-vs-vec_zy-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered-vs-vec_zy-view.jpeg"
        caption="Pot hole event #3 &#8212; Raw vs Min-Vector &#8212; ZY View">ZY View</img>
</images>
			</topic>
			
			<topic>
			  <title>Both Methods Compared</title>
				<p>Here you may compare the two editing methods against one another.</p>
<images>					
  <img src="tn_rh_engmnt_pz31ds_unfiltered-vs-vec-vs-ps_off-diag-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered-vs-vec-vs-ps_off-diag-view.jpeg"
        caption="Pot hole event #3 &#8212; Raw vs Min-Vector vs Peak-Slice &#8212;  Off-Diag View">Off-diagonal View</img>
  <img src="tn_rh_engmnt_pz31ds_unfiltered-vs-vec-vs-ps_xy-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered-vs-vec-vs-ps_xy-view.jpeg"
        caption="Pot hole event #3 &#8212; Raw vs Min-Vector vs Peak-Slice &#8212; XY View">XY View</img>
  <img src="tn_rh_engmnt_pz31ds_unfiltered-vs-vec-vs-ps_xz-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered-vs-vec-vs-ps_xz-view.jpeg"
        caption="Pot hole event #3 &#8212; Raw vs Min-Vector vs Peak-Slice &#8212; XZ View">XZ View</img>
  <img src="tn_rh_engmnt_pz31ds_unfiltered-vs-vec-vs-ps_zy-view.jpeg"
        href="hf_rh_engmnt_pz31ds_unfiltered-vs-vec-vs-ps_zy-view.jpeg"
        caption="Pot hole event #3 &#8212; Raw vs Min-Vector vs Peak-Slice &#8212; ZY View">ZY View</img>
</images>
      </topic>
			
	  </section>
		
		<section>			
		  <title>Links and Downloads</title>
			
			<topic>
			  <title>OpenDX Viewing Program</title>
				<p>Here is a link to the <a class="button" href="http://opendx.org">&#160;OpenDX&#160;Website&#160;</a> where you may obtain OpenDX for yourself. Or if, as may happen, your favorite OS is NetBSD, then you will find in in <code>/usr/pkgsrc/graphics/dx</code>. Various other flavors of Unix/Linux have it too (I just don&#8217;t know where). For Win32, you must click the button and go to their website.</p>
				<p>Having gotten OpenDX, then you may either write your own OpenDX program, or download mine. Here it is: <a class="button" href="./gus_xyz_tube_3file.txt">&#160;gus_xyz_tube_3file.net&#160;</a> (rename it from <code>*.txt</code> to <code>*.net</code> after downloading).</p>
				<p>Perhaps too you might like copies of the data exampled above (pre-extracted for your convenience): 
				<a class="button" href="./rh_engmnt_pz31ds_preloaded.dat">&#160;Raw&#160;</a>; 
				<a class="button" href="./rh_engmnt_pz31ds_ps-20.dat">&#160;Peak-Slice&#160;</a>; 
				<a class="button" href="./rh_engmnt_pz31ds_vec-20.dat">&#160;Min-Vector&#160;</a>.</p>
      </topic>
			
			<topic>
			  <title>Open Source RPC-III Editor</title>
				<p>Just in case you just surfed in by accident, here is a link to the editor program: <a class="button" href="http://starling.us/tet/gus_perl/#GUS-1">&#160;gus_rpc_edit.pl&#160;</a></p>
      </topic>
			
	  </section> 
	</body>
</howto>	
