<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.nmr-relax.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Write_grace2images</id>
	<title>Write grace2images - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.nmr-relax.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Write_grace2images"/>
	<link rel="alternate" type="text/html" href="http://wiki.nmr-relax.com/wiki/index.php?title=Write_grace2images&amp;action=history"/>
	<updated>2026-05-27T04:01:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.4</generator>
	<entry>
		<id>http://wiki.nmr-relax.com/wiki/index.php?title=Write_grace2images&amp;diff=5777&amp;oldid=prev</id>
		<title>Bugman: Forced creation of a TOC - this will improve the formatting on the main page &#039;Did you know...&#039; section.</title>
		<link rel="alternate" type="text/html" href="http://wiki.nmr-relax.com/wiki/index.php?title=Write_grace2images&amp;diff=5777&amp;oldid=prev"/>
		<updated>2015-10-22T17:29:52Z</updated>

		<summary type="html">&lt;p&gt;Forced creation of a TOC - this will improve the formatting on the main page &amp;#039;Did you know...&amp;#039; section.&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 17:29, 22 October 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;__TOC__&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Wish ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Wish ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To write a conversion script that can make a conversion script&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To write a conversion script that can make a conversion script&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bugman</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.nmr-relax.com/wiki/index.php?title=Write_grace2images&amp;diff=303&amp;oldid=prev</id>
		<title>Troels Emtekær Linnet: /* Commit the patch */</title>
		<link rel="alternate" type="text/html" href="http://wiki.nmr-relax.com/wiki/index.php?title=Write_grace2images&amp;diff=303&amp;oldid=prev"/>
		<updated>2013-06-18T09:48:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Commit the patch&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 09:48, 18 June 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l159&quot; &gt;Line 159:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 159:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Commit the patch ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Commit the patch ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See [[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Category:FAQ&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Bugs and development wishes&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== See also ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== See also ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Devel_tutorial]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Devel_tutorial]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Troels Emtekær Linnet</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.nmr-relax.com/wiki/index.php?title=Write_grace2images&amp;diff=297&amp;oldid=prev</id>
		<title>Troels Emtekær Linnet: /* Commit the log */</title>
		<link rel="alternate" type="text/html" href="http://wiki.nmr-relax.com/wiki/index.php?title=Write_grace2images&amp;diff=297&amp;oldid=prev"/>
		<updated>2013-06-18T09:03:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Commit the log&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 09:03, 18 June 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l158&quot; &gt;Line 158:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 158:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Commit the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;log &lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Commit the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;patch &lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See [[Category:FAQ]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See [[Category:FAQ&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== See also ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== See also ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Devel_tutorial]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Devel_tutorial]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Troels Emtekær Linnet</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.nmr-relax.com/wiki/index.php?title=Write_grace2images&amp;diff=296&amp;oldid=prev</id>
		<title>Troels Emtekær Linnet: /* make the writing function */</title>
		<link rel="alternate" type="text/html" href="http://wiki.nmr-relax.com/wiki/index.php?title=Write_grace2images&amp;diff=296&amp;oldid=prev"/>
		<updated>2013-06-18T09:02:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;make the writing function&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 09:02, 18 June 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l54&quot; &gt;Line 54:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 54:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     &amp;quot;&amp;quot;&amp;quot;Write a python &amp;quot;grace to PNG/EPS/SVG...&amp;quot; conversion script..&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     &amp;quot;&amp;quot;&amp;quot;Write a python &amp;quot;grace to PNG/EPS/SVG...&amp;quot; conversion script..&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     The makes a conversion script to image types as PNG/EPS/SVG. The conversion is looping over a directory list of *.agr files, and making function calls to xmgrace. Successfull conversion of images depends on the compilation of xmgrace. The input is a list of image types which is wanted, f.ex: PNG EPS SVG. PNG is default.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     The makes a conversion script to image types as PNG/EPS/SVG. The conversion is looping over a directory list of *.agr files, and making function calls to xmgrace.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;    &lt;/ins&gt;Successfull conversion of images depends on the compilation of xmgrace. The input is a list of image types which is wanted, f.ex: PNG EPS SVG. PNG is default.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     @type file:             file object&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     @type file:             file object&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Troels Emtekær Linnet</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.nmr-relax.com/wiki/index.php?title=Write_grace2images&amp;diff=295&amp;oldid=prev</id>
		<title>Troels Emtekær Linnet: Created page with &quot;== Wish == To write a conversion script that can make a conversion script  == Call to the function == When we make a dispersion analysis, we write xmgrace files.&lt;br&gt; So we wan...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.nmr-relax.com/wiki/index.php?title=Write_grace2images&amp;diff=295&amp;oldid=prev"/>
		<updated>2013-06-18T09:02:01Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Wish == To write a conversion script that can make a conversion script  == Call to the function == When we make a dispersion analysis, we write xmgrace files.&amp;lt;br&amp;gt; So we wan...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Wish ==&lt;br /&gt;
To write a conversion script that can make a conversion script&lt;br /&gt;
&lt;br /&gt;
== Call to the function ==&lt;br /&gt;
When we make a dispersion analysis, we write xmgrace files.&amp;lt;br&amp;gt;&lt;br /&gt;
So we want include the writing in this analysis&lt;br /&gt;
&lt;br /&gt;
=== import the function and call it ===&lt;br /&gt;
In specific_analyses/relax_disp/disp_data.py we import the coming new writing function&lt;br /&gt;
&lt;br /&gt;
We change&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from lib.software.grace import write_xy_data, write_xy_header&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
to&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from lib.software.grace import write_xy_data, write_xy_header, write_grace2images&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then we add doc string to: def plot_disp_curves(dir=None, force=None):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Custom 2D Grace plotting function for the dispersion curves.&lt;br /&gt;
&lt;br /&gt;
    One file will be created per spin system.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
to&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Custom 2D Grace plotting function for the dispersion curves.&lt;br /&gt;
&lt;br /&gt;
    One file will be created per spin system.&lt;br /&gt;
&lt;br /&gt;
    A python &amp;quot;grace to PNG/EPS/SVG...&amp;quot; conversion script is created at the end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then we add to end of file. We open the file, call your writing script and close the file.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
    # Write a python &amp;quot;grace to PNG/EPS/SVG...&amp;quot; conversion script.&lt;br /&gt;
    # Open the file for writing.&lt;br /&gt;
    file_name = &amp;quot;grace2images.py&amp;quot;&lt;br /&gt;
    file = open_write_file(file_name, dir, force)&lt;br /&gt;
&lt;br /&gt;
    # Write the file.&lt;br /&gt;
    write_grace2images(file=file)&lt;br /&gt;
&lt;br /&gt;
    # Close the file.&lt;br /&gt;
    file.close()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== make the writing function ===&lt;br /&gt;
In lib/software/grace.py we write the new function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def write_grace2images(file=None):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Write a python &amp;quot;grace to PNG/EPS/SVG...&amp;quot; conversion script..&lt;br /&gt;
&lt;br /&gt;
    The makes a conversion script to image types as PNG/EPS/SVG. The conversion is looping over a directory list of *.agr files, and making function calls to xmgrace. Successfull conversion of images depends on the compilation of xmgrace. The input is a list of image types which is wanted, f.ex: PNG EPS SVG. PNG is default.&lt;br /&gt;
&lt;br /&gt;
    @type file:             file object&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # Write to file&lt;br /&gt;
    # Hack for the chaos of &amp;quot; and &amp;#039; in same string&lt;br /&gt;
    t=&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    lines = [&lt;br /&gt;
    r&amp;#039;#!/usr/bin/env python&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;import glob, os, sys&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;import shlex,subprocess&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;import argparse&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;from itertools import chain&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;# Add functioning for argument parsing&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;parser = argparse.ArgumentParser(description=&amp;#039;Process grace files to images&amp;#039;)&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;# Add argument type. Destination instance is set to types.&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;parser.add_argument(&amp;#039;-g&amp;#039;, action=&amp;#039;store_true&amp;#039;, dest=&amp;#039;relax_gui&amp;#039;, help=&amp;#039;Make it possible to run script through relax GUI. Run by using User-functions -&amp;gt; script&amp;#039;)&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;parser.add_argument(&amp;#039;-l&amp;#039;, nargs=&amp;#039;+&amp;#039;, action=&amp;#039;append&amp;#039;, dest=&amp;#039;l&amp;#039;, help=&amp;#039;Make in possible to run scriptif relax has logfile turned on. Run by using User-functions -&amp;gt; script&amp;#039;)&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;parser.add_argument(&amp;#039;-t&amp;#039;, nargs=&amp;#039;+&amp;#039;, action=&amp;#039;append&amp;#039;, dest=&amp;#039;types&amp;#039;, help=&amp;#039;List image types for conversion. Execute script with: python %s -t PNG EPS ...&amp;#039;%(sys.argv[0]), default=[])&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;# Lets stop the execution and print help if no arguments are passed&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;if len(sys.argv)==1:&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;    print(&amp;#039;system argument is:&amp;#039;,sys.argv)&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;    parser.print_help()&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;    sys.exit(1)&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;# Parse the arguments to a Class instance object&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;args = parser.parse_args()&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;# If we run through the GUI, we cannot pass input arguments, so we make a default PNG option&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;if args.relax_gui:&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;    args.types = [[&amp;#039;PNG&amp;#039;]]&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;# The instance object will contain a list of lists. We convert this to one list.&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;types = list(chain.from_iterable(args.types))&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;# A easy search for files with *.agt, is to use glob, which is pathnames matching a specified pattern according to the rules used by the Unix shell, not opening a shell&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;gracefiles = glob.glob(&amp;quot;*.agr&amp;quot;)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;# For png conversion, several parameters can be passed to xmgrace. These can be altered later afterwards, and the script rerun. &amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;# The option for transparent is good for poster or insertion in color backgrounds. The ability for this, still depends on xmgrace compilation&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;if &amp;quot;PNG&amp;quot; in types:&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;    pngpar = &amp;quot;png.par&amp;quot;&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;quot;    if not os.path.isfile(pngpar):&amp;quot;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        wpngpar = open(pngpar,&amp;quot;w&amp;quot;)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        wpngpar.write(r%sDEVICE &amp;quot;PNG&amp;quot; FONT ANTIALIASING on%s+&amp;quot;\n&amp;quot;)&amp;#039;%(t,t),&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        wpngpar.write(r%sDEVICE &amp;quot;PNG&amp;quot; OP &amp;quot;transparent:on&amp;quot;%s+&amp;quot;\n&amp;quot;)&amp;#039;%(t,t),&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        wpngpar.write(r%sDEVICE &amp;quot;PNG&amp;quot; OP &amp;quot;compression:9&amp;quot;%s+&amp;quot;\n&amp;quot;)&amp;#039;%(t,t),&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        wpngpar.close()&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;# Now loop over the grace files&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;for grace in gracefiles:&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;    # Get the filename without extension&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;    fname = grace.split(&amp;quot;.agr&amp;quot;)[0]&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;    if &amp;quot;PNG&amp;quot; in types:&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        # Produce the argument string&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        im_args = r&amp;quot;xmgrace -hdevice PNG -hardcopy -param %s -printfile %s.png %s&amp;quot;%(pngpar,fname,grace)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        # Split the arguments the right way, to call xmgrace&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        im_args = shlex.split(im_args)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        return_code = subprocess.call(im_args)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;    if &amp;quot;EPS&amp;quot; in types:&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        im_args = r&amp;quot;xmgrace -hdevice EPS -hardcopy -printfile %s.eps %s&amp;quot;%(fname,grace)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        im_args = shlex.split(im_args)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        return_code = subprocess.call(im_args)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;    if (&amp;quot;JPG&amp;quot; or &amp;quot;JPEG&amp;quot;) in types:&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        im_args = r&amp;quot;xmgrace -hdevice JPEG -hardcopy -printfile %s.jpg %s&amp;quot;%(fname,grace)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        im_args = shlex.split(im_args)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        return_code = subprocess.call(im_args)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;    if &amp;quot;SVG&amp;quot; in types:&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        im_args = r&amp;quot;xmgrace -hdevice SVG -hardcopy -printfile %s.svg %s&amp;quot;%(fname,grace)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        im_args = shlex.split(im_args)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;        return_code = subprocess.call(im_args)&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
    r&amp;#039;&amp;#039;,&amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ]&lt;br /&gt;
    file.writelines(lines)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test the function ===&lt;br /&gt;
Then we make a small script to call the function outside relax, to see if we get the wanted output.&amp;lt;br&amp;gt;&lt;br /&gt;
We first append to system path, so we can import the modules in relax, and then change to a directory where&lt;br /&gt;
we have stored some results.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import sys,os&lt;br /&gt;
sys.path.append(&amp;quot;C:\\WinPython27\\relax_disp&amp;quot;)&lt;br /&gt;
os.chdir(&amp;quot;C:\\WinPython27\\relax_results&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
import lib.software.grace&lt;br /&gt;
reload(lib.software.grace)&lt;br /&gt;
&lt;br /&gt;
file_name = &amp;quot;grace2images.py&amp;quot;&lt;br /&gt;
file = open(file_name,&amp;quot;w&amp;quot;)&lt;br /&gt;
# Write the file.&lt;br /&gt;
lib.software.grace.write_grace2images(file=file)&lt;br /&gt;
file.close()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Commit the log ==&lt;br /&gt;
See [[Category:FAQ]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[Category:Devel_tutorial]]&lt;/div&gt;</summary>
		<author><name>Troels Emtekær Linnet</name></author>
		
	</entry>
</feed>