<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Aaron Racicot's Reprojected GIS Blog &#187; GIS Tool Dev</title>
	<atom:link href="http://www.reprojected.com/geoblog/category/gis/gis-tool-dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.reprojected.com/geoblog</link>
	<description>Warping your understanding of the gis world</description>
	<lastBuildDate>Wed, 18 Feb 2009 05:39:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MirrorMap</title>
		<link>http://www.reprojected.com/geoblog/2009/02/17/mirrormap/</link>
		<comments>http://www.reprojected.com/geoblog/2009/02/17/mirrormap/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 05:39:35 +0000</pubDate>
		<dc:creator>aaronr</dc:creator>
				<category><![CDATA[GIS Tool Dev]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.reprojected.com/geoblog/?p=94</guid>
		<description><![CDATA[Another QGIS plugin idea I have had is to create a method of splitting the map canvas within QGIS to have two side-by-side maps that can track and interact with each other.  There are lots of possibilities for this type of &#8220;reconfiguring&#8221; of the QGIS interface on the fly via plugins, so I decided to [...]]]></description>
			<content:encoded><![CDATA[<p>Another QGIS plugin idea I have had is to create a method of splitting the map canvas within QGIS to have two side-by-side maps that can track and interact with each other.  There are lots of possibilities for this type of &#8220;reconfiguring&#8221; of the QGIS interface on the fly via plugins, so I decided to dive in and give it a go.</p>
<p><a title="MirrorMap" href="http://www.reprojected.com/presentations/Videos/mirrormap/alpha/mirrormap_final.html">Here is a link to a video</a> showing some of the basic operation of the MirrorMap plugin.</p>
<p>*** This plugin is very &#8220;Alpha&#8221; in that it makes the size of the map canvas static after invoking the plugin (until you launch QGIS again), does not handle layers of differing projections, does not allow for re-ordering layers in the mirror canvas, and many other deficiencies I am sure.  But hey, its just a test!</p>
<div id="attachment_96" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.reprojected.com/presentations/Videos/mirrormap/alpha/mirrormap_final.html"><img class="size-medium wp-image-96" src="http://www.reprojected.com/geoblog/wp-content/uploads/2009/02/mirrormap-300x248.png" alt="MirrorMap in action" width="300" height="248" /></a><p class="wp-caption-text">MirrorMap in action</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.reprojected.com/geoblog/2009/02/17/mirrormap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging QGIS Plugins&#8230;</title>
		<link>http://www.reprojected.com/geoblog/2009/02/06/debugging-qgis-plugins/</link>
		<comments>http://www.reprojected.com/geoblog/2009/02/06/debugging-qgis-plugins/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 21:08:12 +0000</pubDate>
		<dc:creator>aaronr</dc:creator>
				<category><![CDATA[GIS Tool Dev]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.reprojected.com/geoblog/?p=73</guid>
		<description><![CDATA[Well, the title might better read &#8220;debugging PyQt applications&#8230;&#8221;, but much of my PyQt foo happens when developing QGIS plugins.  In general I am old school&#8230; emacs and gdb are my friends.  When it comes to developing in PyQt there is one life saving code snip that will make your life much easier:
from PyQt4 import [...]]]></description>
			<content:encoded><![CDATA[<p>Well, the title might better read &#8220;debugging <a title="PyQt" href="http://www.riverbankcomputing.co.uk/software/pyqt/intro" target="_blank">PyQt</a> applications&#8230;&#8221;, but much of my PyQt foo happens when developing <a title="My QGIS Plugins" href="http://qgisplugins.z-pulley.com/" target="_blank">QGIS plugins</a>.  In general I am old school&#8230; <a title="emacs" href="http://www.gnu.org/software/emacs/" target="_blank">emacs</a> and <a title="gdb" href="http://www.gnu.org/software/gdb/" target="_blank">gdb</a> are my friends.  When it comes to developing in PyQt there is one life saving code snip that will make your life much easier:</p>
<pre>from PyQt4 import QtCore
import pdb
...
QtCore.pyqtRemoveInputHook()
pdb.set_trace()</pre>
<p>This not only sets a trace (breakpoint) in your code, but it stops the PyQt event loop.  The call to <a title="pyqtRemoveInputHook" href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/pyqt4ref.html#using-pyqt-from-the-python-shell" target="_blank">pyqtRemoveInputHook()</a> is a tasty little tidbit in PyQt to allow for this &#8220;stop it in it&#8217;s tracks&#8221; behavior.  This is a must have for debugging PyQGIS or Python based plugins.</p>
<p>Once you are in <a title="PDB" href="http://docs.python.org/library/pdb.html" target="_blank">pdb</a>, you are set to go with interactive debugging:</p>
<pre>--Return--
&gt; /home/aaronr/.qgis/python/plugins/refmap/refmap.py(101)__init__()-&gt;None
-&gt; pdb.set_trace()
(Pdb) bt
&lt;string&gt;(1)&lt;module&gt;()
/home/aaronr/.qgis/python/plugins/refmap/refmap.py(144)initGui()
-&gt; self.refmap_gui = ReferenceMapWindow(self.iface,flags,self)
&gt; /home/aaronr/.qgis/python/plugins/refmap/refmap.py(101)__init__()-&gt;None
-&gt; pdb.set_trace()
(Pdb) print self
&lt;refmap.refmap.ReferenceMapWindow object at 0x8cc6c2c&gt;
(Pdb) print self.iface.mainWindow().windowTitle()
Quantum GIS - 1.1.0-Unstable-trunk
(Pdb)</pre>
<p>Happy debugging!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.reprojected.com/geoblog/2009/02/06/debugging-qgis-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New python qgis plugin&#8230; raster file path info&#8230;</title>
		<link>http://www.reprojected.com/geoblog/2008/01/14/new-python-qgis-plugin-raster-file-path-info/</link>
		<comments>http://www.reprojected.com/geoblog/2008/01/14/new-python-qgis-plugin-raster-file-path-info/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 19:23:46 +0000</pubDate>
		<dc:creator>aaronr</dc:creator>
				<category><![CDATA[GIS Tool Dev]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.reprojected.com/geoblog/2008/01/14/new-python-qgis-plugin-raster-file-path-info/</guid>
		<description><![CDATA[http://blog.qgis.org/?q=node/104
As I noted over on the QGIS blog I have started to organize my python plugins and will be adding more soon.







]]></description>
			<content:encoded><![CDATA[<p><a title="Blog post..." href="http://blog.qgis.org/?q=node/104">http://blog.qgis.org/?q=node/104</a></p>
<p>As I noted over on the QGIS blog I have started to organize my python plugins and will be adding more soon.
<p><!--b8133433f0b7e82d27e6f3616f8b10e1-->
<p><!--c6f50021d346d00ab3e1496f07308f42-->
<p><!--0043dd641172feefad4cfa78c18df6cf-->
<p>
<p><!--5ed4749dd7a16aa0acf275af97422b41-->
</p>
<p><!--73eb15a0da8e4adc9351698215a329b7--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.reprojected.com/geoblog/2008/01/14/new-python-qgis-plugin-raster-file-path-info/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QGIS on the eee&#8230;</title>
		<link>http://www.reprojected.com/geoblog/2008/01/06/qgis-on-the-eee/</link>
		<comments>http://www.reprojected.com/geoblog/2008/01/06/qgis-on-the-eee/#comments</comments>
		<pubDate>Sun, 06 Jan 2008 07:46:26 +0000</pubDate>
		<dc:creator>aaronr</dc:creator>
				<category><![CDATA[GIS Tool Dev]]></category>
		<category><![CDATA[GIS Tool Install]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.reprojected.com/geoblog/2008/01/06/qgis-on-the-eee/</guid>
		<description><![CDATA[Well, I got Ubuntu 7.10 installed on an 8 gig SDHC card and away I go&#8230;
4.5 gigs used for the base Ubuntu system as well as the base GIS software:
1) Proj4 (4.6.0)
2) GDAL/OGR (1.5.0)
3) GEOS (3.0.0)
4) Postgresql (8.2.5)
5) PostGIS (1.3.2)
6) QT dev environment (4.3.2)
7) QGIS svn (0.9.2)
What do you get?  Well, an ultra portable [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I got Ubuntu 7.10 installed on an 8 gig SDHC card and away I go&#8230;</p>
<p>4.5 gigs used for the base Ubuntu system as well as the base GIS software:</p>
<p>1) Proj4 (4.6.0)<br />
2) GDAL/OGR (1.5.0)<br />
3) GEOS (3.0.0)<br />
4) Postgresql (8.2.5)<br />
5) PostGIS (1.3.2)<br />
6) QT dev environment (4.3.2)<br />
7) QGIS svn (0.9.2)</p>
<p>What do you get?  Well, an ultra portable GIS workstation weighing in at less than 2 lbs that is very fun!</p>
<p><a title="EeePC Video" href="http://www.reprojected.com/presentations/Videos/eee_qgis_install/eee_qgis_install.html">Check out a video:</a></p>
<p><a title="EeePC Video" href="http://www.reprojected.com/presentations/Videos/eee_qgis_install/eee_qgis_install.html">http://www.reprojected.com/presentations/Videos/eee_qgis_install/eee_qgis_install.html</a>
</p>
<p><!--cf921a862555c660a8b43fc63dcf9809--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.reprojected.com/geoblog/2008/01/06/qgis-on-the-eee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
