<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Smathermather&#039;s Weblog</title>
	<atom:link href="http://smathermather.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://smathermather.wordpress.com</link>
	<description>Remote Sensing, GIS, Ecology, and Oddball Techniques</description>
	<lastBuildDate>Fri, 20 Jan 2012 05:07:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='smathermather.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/03c18d98e50a77a4ff0ff6c43576ef7c?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Smathermather&#039;s Weblog</title>
		<link>http://smathermather.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://smathermather.wordpress.com/osd.xml" title="Smathermather&#039;s Weblog" />
	<atom:link rel='hub' href='http://smathermather.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Fast Calculation of Voronoi Polygons in PovRay</title>
		<link>http://smathermather.wordpress.com/2012/01/20/fast-calculation-of-voronoi-polygons-in-povray/</link>
		<comments>http://smathermather.wordpress.com/2012/01/20/fast-calculation-of-voronoi-polygons-in-povray/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 05:05:12 +0000</pubDate>
		<dc:creator>smathermather</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Optics]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[POV-Ray]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[povray]]></category>

		<guid isPermaLink="false">http://smathermather.wordpress.com/?p=1253</guid>
		<description><![CDATA[Yet further abuse to follow in the application of PovRay for spatial analyses&#8211; be forwarned&#8230; . Calculating Voronoi polygons is a useful tool for calculating the initial approximation of a medial axis. We densify the vertices on the polygon for which we want a medial axis, and then calculate Voronoi polygons on said vertices. I&#8217;ll [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1253&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yet further abuse to follow in the application of <a href="http://povray.org">PovRay</a> for spatial analyses&#8211; be forwarned&#8230; .</p>
<p>Calculating Voronoi polygons is a useful tool for calculating the initial approximation of a medial axis.  We densify the vertices on the polygon for which we want a medial axis, and then calculate Voronoi polygons on said vertices.  I&#8217;ll confess&#8211; I&#8217;ve been using ArcGIS for this step.  There.  I said it.  My name is smathermather, and I use ArcGIS.  It&#8217;s a darn useful tool, and, and, I&#8217;m not ashamed to say that I use it all the time.</p>
<p>But, I do like the idea of doing this with non-proprietary, open source tools.  I&#8217;ve contemplated using the approach that Regina Obe blogs about using <a href="http://www.bostongis.com/PrinterFriendly.aspx?content_name=postgresql_plr_tut02">PL/R + PostGIS to calculate them</a>, but the installation of PL/R on my system failed <a href="http://en.wiktionary.org/wiki/yak_shaving">my initial Yak Shaving Test</a>.</p>
<p>So, with some google-fu, I stumbled upon <a href="http://cs.nyu.edu/~ajsecord/npar2002/html/stipples-node2.html">articles on using 3D approaches</a> to calculate 2D Voronoi diagrams, and my brain went into high gear.  Right cones of equal size, viewed orthogonally generate lovely Voronoi diagrams, the only caveat being you need to know what your maximum distance you want to calculate in your diagram.  For my use cases, this isn&#8217;t a limitation at all.</p>
<p>And so we abuse PovRay, yet again, to do our dirty work in analyses.  I&#8217;ll undoubtedly have some follow up posts on this, but in the mean time, some diagrams and really dirty code:<br />
<a href="http://smathermather.files.wordpress.com/2012/01/cone.png"><img src="http://smathermather.files.wordpress.com/2012/01/cone.png" alt="" title="cone" width="800" height="800" class="alignnone size-full wp-image-1254" /></a></p>
<p><pre class="brush: cpp;">

global_settings {
	ambient_light rgb &lt;0.723364, 0.723368, 0.723364&gt;
}

camera {
	orthographic 
	location &lt; 0.0, 5, 0&gt;
	right x * 3
	up y * 3
	look_at &lt; 0.0, 0.0, 0.0&gt;
}

light_source {
	&lt; 0.0, 100, 0&gt;
	rgb &lt;0.999996, 1.000000, 0.999996&gt;
	parallel
	point_at &lt; 0.0, 0.0, 0.0&gt;
}


light_source {
	&lt; 0.0, 100, 100&gt;
	rgb &lt;0.999996, 1.000000, 0.999996&gt;
	parallel
	point_at &lt; 0.0, 0.0, 0.0&gt;
}

light_source {
	&lt; 100, 100, 0&gt;
	rgb &lt;0.999996, 1.000000, 0.999996&gt;
	parallel
	point_at &lt; 0.0, 0.0, 0.0&gt;
}

cone {
	&lt;0.0, -0.5, 0.0&gt;, 0.5,  &lt;0.0, 0.5, 0.0&gt;, 0.0
	hollow
	material {
		texture {
			pigment {
				rgb &lt;0.089677, 0.000000, 1.000000&gt;
			}
			finish {
				diffuse 0.6
				brilliance 1.0
			}
		}
		interior {
			ior 1.3
		}
	}
}

cone {
	&lt;0.0, -0.5, 0.0&gt;, 0.5,  &lt;0.0, 0.5, 0.0&gt;, 0.0
	hollow
	material {
		texture {
			pigment {
				rgb &lt;1, 0.000000, 1.000000&gt;
			}
			finish {
				diffuse 0.6
				brilliance 1.0
			}
		}
		interior {
			ior 1.3
		}
	}
	translate &lt;-0.5,0,-0.5&gt;
}

cone {
	&lt;0.0, -0.5, 0.0&gt;, 0.5,  &lt;0.0, 0.5, 0.0&gt;, 0.0
	hollow
	material {
		texture {
			pigment {
				rgb &lt;1, 0.000000, 000000&gt;
			}
			finish {
				diffuse 0.6
				brilliance 1.0
			}
		}
		interior {
			ior 1.3
		}
	}
	translate &lt;-0.5,0,0.5&gt;
}

cone {
	&lt;0.0, -0.5, 0.0&gt;, 0.5,  &lt;0.0, 0.5, 0.0&gt;, 0.0
	hollow
	material {
		texture {
			pigment {
				rgb &lt;1, 1.000000, 000000&gt;
			}
			finish {
				diffuse 0.6
				brilliance 1.0
			}
		}
		interior {
			ior 1.3
		}
	}
	translate &lt;0.3,0,0.3&gt;
}

cone {
	&lt;0.0, -0.5, 0.0&gt;, 0.5,  &lt;0.0, 0.5, 0.0&gt;, 0.0
	hollow
	material {
		texture {
			pigment {
				rgb &lt;0, 1.000000, 000000&gt;
			}
			finish {
				diffuse 0.6
				brilliance 1.0
			}
		}
		interior {
			ior 1.3
		}
	}
	translate &lt;0.4,0,-0.2&gt;
}

cone {
	&lt;0.0, -0.5, 0.0&gt;, 0.5,  &lt;0.0, 0.5, 0.0&gt;, 0.0
	hollow
	material {
		texture {
			pigment {
				rgb &lt;1, 1.000000, 1.000000&gt;
			}
			finish {
				diffuse 0.6
				brilliance 1.0
			}
		}
		interior {
			ior 1.3
		}
	}
	translate &lt;0,0,-.7&gt;
}
</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smathermather.wordpress.com/1253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smathermather.wordpress.com/1253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smathermather.wordpress.com/1253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smathermather.wordpress.com/1253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smathermather.wordpress.com/1253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smathermather.wordpress.com/1253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smathermather.wordpress.com/1253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smathermather.wordpress.com/1253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smathermather.wordpress.com/1253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smathermather.wordpress.com/1253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smathermather.wordpress.com/1253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smathermather.wordpress.com/1253/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smathermather.wordpress.com/1253/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smathermather.wordpress.com/1253/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1253&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smathermather.wordpress.com/2012/01/20/fast-calculation-of-voronoi-polygons-in-povray/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/872c3984fe0bf0b61f82d3ddfcd23346?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smathermather</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2012/01/cone.png" medium="image">
			<media:title type="html">cone</media:title>
		</media:content>
	</item>
		<item>
		<title>What is the center line of a complex polygon? New approach.</title>
		<link>http://smathermather.wordpress.com/2012/01/17/what-is-the-center-line-of-a-complex-polygon-new-approach/</link>
		<comments>http://smathermather.wordpress.com/2012/01/17/what-is-the-center-line-of-a-complex-polygon-new-approach/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 13:25:54 +0000</pubDate>
		<dc:creator>smathermather</dc:creator>
				<category><![CDATA[PostGIS]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Analysis]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[labeling]]></category>

		<guid isPermaLink="false">http://smathermather.wordpress.com/?p=1240</guid>
		<description><![CDATA[Today, I just show pictures of my process for filtering the medial axis of extraneous elements. I&#8217;ll let the pics tell the story for now: scale axis transform 3 scale axis transform 2 scale axis transform 1 previous post original<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1240&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today, I just show pictures of my process for filtering the medial axis of extraneous elements. I&#8217;ll let the pics tell the story for now:</p>
<div id="attachment_1241" class="wp-caption alignnone" style="width: 1034px"><a href="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-21-06-am.png"><img class="size-full wp-image-1241" title="Original Geometry, with ST_Segmentize run to densify the vertices" src="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-21-06-am.png" alt="" width="1024" height="541" /></a><p class="wp-caption-text">Original Geometry, with ST_Segmentize run to densify the vertices</p></div>
<div id="attachment_1242" class="wp-caption alignnone" style="width: 1034px"><a href="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-21-26-am.png"><img class="size-full wp-image-1242" title="Medial Axis (Calculated outside PostGIS... at this time)" src="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-21-26-am.png" alt="" width="1024" height="542" /></a><p class="wp-caption-text">Medial Axis (Calculated outside PostGIS... at this time)</p></div>
<div id="attachment_1243" class="wp-caption alignnone" style="width: 1034px"><a href="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-21-43-am.png"><img class="size-full wp-image-1243" title="Density of vertex points in Medial Axis" src="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-21-43-am.png" alt="" width="1024" height="543" /></a><p class="wp-caption-text">Density of vertex points in Medial Axis-- proportional to how closely it matches the direction of the local geometry</p></div>
<div id="attachment_1244" class="wp-caption alignnone" style="width: 1034px"><a href="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-22-17-am.png"><img class="size-full wp-image-1244" title="Medial Axis filtered based on density of vertices" src="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-22-17-am.png" alt="" width="1024" height="543" /></a><p class="wp-caption-text">Medial Axis filtered based on density of vertices.  Red segments are the removed ones, blue are the retained.  It&#039;s not perfect, but it&#039;s very cheap computationally... .</p></div>
<p><a href="http://smathermather.wordpress.com/2012/01/14/what-is-the-center-line-of-a-complex-polygon-cont-again/">scale axis transform 3</a></p>
<p><a href="http://smathermather.wordpress.com/2011/10/08/what-is-the-center-line-of-a-complex-polygon-cont-2/">scale axis transform 2<br />
scale axis transform 1</a></p>
<p><a href="http://smathermather.wordpress.com/2011/09/16/what-is-the-center-line-of-a-polygon-or-how-to-change-labeling-in-geoserver/">previous post</a></p>
<p><a href="http://smathermather.wordpress.com/2011/09/16/what-is-the-center-line-of-a-polygon-or-how-to-change-labeling-in-geoserver/">original</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smathermather.wordpress.com/1240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smathermather.wordpress.com/1240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smathermather.wordpress.com/1240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smathermather.wordpress.com/1240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smathermather.wordpress.com/1240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smathermather.wordpress.com/1240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smathermather.wordpress.com/1240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smathermather.wordpress.com/1240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smathermather.wordpress.com/1240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smathermather.wordpress.com/1240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smathermather.wordpress.com/1240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smathermather.wordpress.com/1240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smathermather.wordpress.com/1240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smathermather.wordpress.com/1240/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1240&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smathermather.wordpress.com/2012/01/17/what-is-the-center-line-of-a-complex-polygon-new-approach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/872c3984fe0bf0b61f82d3ddfcd23346?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smathermather</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-21-06-am.png" medium="image">
			<media:title type="html">Original Geometry, with ST_Segmentize run to densify the vertices</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-21-26-am.png" medium="image">
			<media:title type="html">Medial Axis (Calculated outside PostGIS... at this time)</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-21-43-am.png" medium="image">
			<media:title type="html">Density of vertex points in Medial Axis</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-22-17-am.png" medium="image">
			<media:title type="html">Medial Axis filtered based on density of vertices</media:title>
		</media:content>
	</item>
		<item>
		<title>What is the center line of a complex polygon? (cont. again!)</title>
		<link>http://smathermather.wordpress.com/2012/01/14/what-is-the-center-line-of-a-complex-polygon-cont-again/</link>
		<comments>http://smathermather.wordpress.com/2012/01/14/what-is-the-center-line-of-a-complex-polygon-cont-again/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 16:50:14 +0000</pubDate>
		<dc:creator>smathermather</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[PostGIS]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[labeling]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://smathermather.wordpress.com/?p=1235</guid>
		<description><![CDATA[I didn&#8217;t remember that I had 4 previous post on this topic, but I&#8217;ve gotten a little obsessed with this problem&#8211; how to (with relatively little computational cost) kind the centerline of complex polygons, so we can extract flow lines from streams, label long complex polygons, easily generate the centerline parcel boundary line for river [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1235&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t remember that I had 4 previous post on this topic, but I&#8217;ve gotten a little obsessed with this problem&#8211; how to (with relatively little computational cost) kind the centerline of complex polygons, so we can extract flow lines from streams, label long complex polygons, easily generate the centerline parcel boundary line for river bound parcels, etc..  FYI, here are my 4 previous posts on this topic:</p>
<p><a href="http://smathermather.wordpress.com/2011/10/08/what-is-the-center-line-of-a-complex-polygon-cont-2/">scale axis transform 2<br />
scale axis transform 1</a></p>
<p><a href="http://smathermather.wordpress.com/2011/09/16/what-is-the-center-line-of-a-polygon-or-how-to-change-labeling-in-geoserver/">previous post</a></p>
<p><a href="http://smathermather.wordpress.com/2011/09/16/what-is-the-center-line-of-a-polygon-or-how-to-change-labeling-in-geoserver/">original</a></p>
<p>I&#8217;ll confess, I became somewhat enamored of the scale axis transform as a method for tackling this problem.  In short, the scale axis transform identifies the medial axis of the polygon using Amenta and Kolluri&#8217;s finite union of balls to identify the initial centerline of the polygon, and then tries to fix the deficiencies in the robustness of the medial axis.</p>
<p><a href="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-16-09-am.png"><img class="alignnone size-full wp-image-1236" title="Finite union of balls" src="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-16-09-am.png" alt="" width="1024" height="627" /></a></p>
<p>The problem, of course, is the degree to which bumps in the shape result in extra little lines hanging off our medial axis.  This does not represent an intuitive medial axis.  This is not what we would (in this case) call the centerline of the stream.</p>
<p>The <a href="http://www.balintmiklos.com/">scale axis transform</a> suggests expanding these balls by a multiplicative factor, and deriving the new axis from that scaled version:</p>
<p><a href="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-17-45-am.png"><img class="alignnone size-full wp-image-1237" title="Scale Axis Transform, multiplicative expansion" src="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-17-45-am.png" alt="" width="1024" height="559" /></a></p>
<p>This step can easily be done in PostGIS once you have the medial axis:</p>
<p><pre class="brush: sql;">

CREATE TABLE rr_expand_r3_12 AS

SELECT
ST_Buffer(b.the_geom, ST_Distance(b.the_geom, ST_Union(a.the_geom)) * 1.2 )
FROM medial_axis b, polyline a
GROUP BY &lt;a href=&quot;http://a.id/&quot; target=&quot;_blank&quot;&gt;a.id&lt;/a&gt;, b.the_geom
 ;

</pre></p>
<p>I will play a bit more with this, but the initial results I got around areas with islands (torus like topology) were disappointing.  Also, at least as I have this implemented in PostGIS, this is a computationally intensive process.  I think though that I have a good (enough) alternative, which will be the topic of my next post.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smathermather.wordpress.com/1235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smathermather.wordpress.com/1235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smathermather.wordpress.com/1235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smathermather.wordpress.com/1235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smathermather.wordpress.com/1235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smathermather.wordpress.com/1235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smathermather.wordpress.com/1235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smathermather.wordpress.com/1235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smathermather.wordpress.com/1235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smathermather.wordpress.com/1235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smathermather.wordpress.com/1235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smathermather.wordpress.com/1235/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smathermather.wordpress.com/1235/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smathermather.wordpress.com/1235/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1235&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smathermather.wordpress.com/2012/01/14/what-is-the-center-line-of-a-complex-polygon-cont-again/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/872c3984fe0bf0b61f82d3ddfcd23346?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smathermather</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-16-09-am.png" medium="image">
			<media:title type="html">Finite union of balls</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2012/01/screen-shot-2012-01-14-at-11-17-45-am.png" medium="image">
			<media:title type="html">Scale Axis Transform, multiplicative expansion</media:title>
		</media:content>
	</item>
		<item>
		<title>PostGIS Cartographic Effects&#8211; Cartoonify Nearly Coincident Lines</title>
		<link>http://smathermather.wordpress.com/2012/01/10/postgis-cartographic-effects-cartoonify-nearly-coincident-lines-2/</link>
		<comments>http://smathermather.wordpress.com/2012/01/10/postgis-cartographic-effects-cartoonify-nearly-coincident-lines-2/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 03:20:37 +0000</pubDate>
		<dc:creator>smathermather</dc:creator>
				<category><![CDATA[PostGIS]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Trails]]></category>
		<category><![CDATA[Trail Curation]]></category>
		<category><![CDATA[Analysis]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[Postgre]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://smathermather.wordpress.com/?p=1226</guid>
		<description><![CDATA[In my previous post, a long 24-hours ago, I proposed some automatic modification of line for cartographic reasons. I had some flaws in my code. The points were over-rotated by 45 degrees. Can you spot why? Tip: it&#8217;s a basic trigonometric mistake. Here&#8217;s the corrected code (though there may be a better way): An alternate [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1226&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://smathermather.wordpress.com/2012/01/09/postgis-cartographic-effects-cartoonify-nearly-coincident-lines/">previous post, a long 24-hours ago</a>, I proposed some automatic modification of line for cartographic reasons.  I had some flaws in my code.  The points were over-rotated by 45 degrees.  Can you spot why?  Tip: it&#8217;s a basic trigonometric mistake.  Here&#8217;s the corrected code (though there may be a better way):</p>
<p><pre class="brush: sql;">
CREATE TABLE movedRoad AS
SELECT
    ST_Translate(b.the_geom,
        0.5 * ST_Distance(b.the_geom, ST_Union(a.the_geom)) * (cos(ST_Azimuth(b.the_geom, ST_ClosestPoint(ST_Union(a.the_geom), b.the_geom))) - 3.14159/4),
        0.5 * ST_Distance(b.the_geom, ST_Union(a.the_geom)) * (sin(ST_Azimuth(b.the_geom, ST_ClosestPoint(ST_Union(a.the_geom), b.the_geom))) - 3.14159/4) )
            AS the_geom
    FROM road2_points b, road1 a
        GROUP BY a.id, b.the_geom
    ;
</pre></p>
<p>An alternate approach is to only move those points that are too close, ala:</p>
<p><pre class="brush: sql;">
CREATE TABLE movedRoadAgain AS
	SELECT
        ST_Translate(b.the_geom,
	        (100 - ST_Distance(b.the_geom, ST_Union(a.the_geom))) * (cos(ST_Azimuth(b.the_geom, ST_ClosestPoint(ST_Union(a.the_geom), b.the_geom))) - 3.14159/4) ,
	        (100 - ST_Distance(b.the_geom, ST_Union(a.the_geom)))* (sin(ST_Azimuth(b.the_geom, ST_ClosestPoint(ST_Union(a.the_geom), b.the_geom))) - 3.14159/4) ) AS the_geom
	    FROM road2_points b, road1 a
	        GROUP BY a.id, b.the_geom
		HAVING ST_Distance(b.the_geom, ST_Union(a.the_geom)) &lt; 100

	UNION ALL

	SELECT
		b.the_geom AS the_geom
	    FROM bridle_points b, apt a
	        GROUP BY a.id, b.the_geom
		HAVING ST_Distance(b.the_geom, ST_Union(a.the_geom)) &gt;= 100
	    ;
</pre></p>
<p><a href="http://smathermather.files.wordpress.com/2012/01/trails_move211.png"><img src="http://smathermather.files.wordpress.com/2012/01/trails_move211.png" alt="" title="trails_move21" width="1024" height="524" class="alignnone size-full wp-image-1232" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smathermather.wordpress.com/1226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smathermather.wordpress.com/1226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smathermather.wordpress.com/1226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smathermather.wordpress.com/1226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smathermather.wordpress.com/1226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smathermather.wordpress.com/1226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smathermather.wordpress.com/1226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smathermather.wordpress.com/1226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smathermather.wordpress.com/1226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smathermather.wordpress.com/1226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smathermather.wordpress.com/1226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smathermather.wordpress.com/1226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smathermather.wordpress.com/1226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smathermather.wordpress.com/1226/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1226&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smathermather.wordpress.com/2012/01/10/postgis-cartographic-effects-cartoonify-nearly-coincident-lines-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/872c3984fe0bf0b61f82d3ddfcd23346?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smathermather</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2012/01/trails_move211.png" medium="image">
			<media:title type="html">trails_move21</media:title>
		</media:content>
	</item>
		<item>
		<title>PostGIS Cartographic Effects&#8211; Cartoonify Nearly Coincident Lines</title>
		<link>http://smathermather.wordpress.com/2012/01/09/postgis-cartographic-effects-cartoonify-nearly-coincident-lines/</link>
		<comments>http://smathermather.wordpress.com/2012/01/09/postgis-cartographic-effects-cartoonify-nearly-coincident-lines/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 02:15:05 +0000</pubDate>
		<dc:creator>smathermather</dc:creator>
				<category><![CDATA[PostGIS]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Trails]]></category>
		<category><![CDATA[Trail Curation]]></category>
		<category><![CDATA[Analysis]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[Postgre]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://smathermather.wordpress.com/?p=1203</guid>
		<description><![CDATA[I&#8217;m still working on this query, but I thought I&#8217;d post what I&#8217;ve done so far. My intent is to produce scale-dependent exaggeration of the distances between quasi-parallel lines. The reason for this is so that lines such as street lines which are nearly coincident at a particular viewing scale can be spread from each [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1203&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m still working on this query, but I thought I&#8217;d post what I&#8217;ve done so far.  My intent is to produce scale-dependent exaggeration of the distances between quasi-parallel lines.  The reason for this is so that lines such as street lines which are nearly coincident at a particular viewing scale can be spread from each other, much in the same way great cartography lies a little to display a relatively correct map.  The nice thing about digital cartography is that as we zoom in, we can make the lie a smaller and smaller, until it is just barely a fib <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>My thought was to start with the simplest case&#8211; move one line away from another (stationary) line.  First step is to find the closest point on the stationary line, determine the distance and angle to that point, and then translate the point outward by some scale factor along that angle.  Don&#8217;t take my code as gospel, though, I think there&#8217;s some deeper logical error, but see what you think:</p>
<p>ST_ShortestLine gives us the shortest line from a given point to the road from which we are trying to offset.  This is just to help visualize the problem:</p>
<p><pre class="brush: sql;">
CREATE TABLE shortLine AS

SELECT
	ST_ShortestLine(b.the_geom, ST_Union(a.the_geom)) AS the_geom
    FROM road2_points b, road1 a
    GROUP BY a.id, b.the_geom
    ;
</pre></p>
<p>Now, we try to translate the point outward at the same angle, by half again the distance to the closest point:</p>
<p><pre class="brush: sql;">
CREATE TABLE movedRoad AS
SELECT
	ST_Translate(b.the_geom,
		0.5 * ST_Distance(b.the_geom, ST_Union(a.the_geom)) * cos(ST_Azimuth(b.the_geom, ST_ClosestPoint(ST_Union(a.the_geom), b.the_geom))),
		0.5 * ST_Distance(b.the_geom, ST_Union(a.the_geom)) * sin(ST_Azimuth(b.the_geom, ST_ClosestPoint(ST_Union(a.the_geom), b.the_geom))) )
			AS the_geom
    FROM road2_points b, road1 a
        GROUP BY a.id, b.the_geom
    ;
</pre></p>
<p>Resulting in something looking like this (red dashed line is the road we are moving away from, the dotted blue are the points making up the line we are moving, and the dotted brown are the newly transformed points, with ST_ShortestLine also visualized in thin brown):</p>
<p><a href="http://smathermather.files.wordpress.com/2012/01/trails_move2.png"><img class="alignnone size-full wp-image-1207" title="trails_move" src="http://smathermather.files.wordpress.com/2012/01/trails_move2.png" alt="" width="1024" height="589" /></a><a href="http://smathermather.files.wordpress.com/2012/01/trails_move1.png">/&gt;</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smathermather.wordpress.com/1203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smathermather.wordpress.com/1203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smathermather.wordpress.com/1203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smathermather.wordpress.com/1203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smathermather.wordpress.com/1203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smathermather.wordpress.com/1203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smathermather.wordpress.com/1203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smathermather.wordpress.com/1203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smathermather.wordpress.com/1203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smathermather.wordpress.com/1203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smathermather.wordpress.com/1203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smathermather.wordpress.com/1203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smathermather.wordpress.com/1203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smathermather.wordpress.com/1203/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1203&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smathermather.wordpress.com/2012/01/09/postgis-cartographic-effects-cartoonify-nearly-coincident-lines/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/872c3984fe0bf0b61f82d3ddfcd23346?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smathermather</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2012/01/trails_move2.png" medium="image">
			<media:title type="html">trails_move</media:title>
		</media:content>
	</item>
		<item>
		<title>There&#8217;s an App for That, Alternate</title>
		<link>http://smathermather.wordpress.com/2012/01/02/theres-an-app-for-that-alternate/</link>
		<comments>http://smathermather.wordpress.com/2012/01/02/theres-an-app-for-that-alternate/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 01:56:29 +0000</pubDate>
		<dc:creator>smathermather</dc:creator>
				<category><![CDATA[GIS]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://smathermather.wordpress.com/?p=1190</guid>
		<description><![CDATA[codinggeekette, or Sarah Dutkiewicz and her husband introduced me to Linux and Open Source many years ago.  Running counter-culture is the genius that is @sadukie, so now she&#8217;s a Microsoft MVP.  We&#8217;ll forgive her that, since she does crazy stuff like setting up .net environments on Linux and other fun stuff.  Anyway, Sarah has a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1190&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>codinggeekette, or <a href="http://www.amazon.com/-/e/B004LJX88C">Sarah Dutkiewicz</a> and her husband introduced me to Linux and Open Source many years ago.  Running counter-culture is the genius that is @sadukie, so now she&#8217;s a Microsoft MVP.  We&#8217;ll forgive her that, since she does crazy stuff like setting up .net environments on Linux and other fun stuff.  Anyway, Sarah has a <a href="http://codinggeekette.com/2012/01/02/theres-an-app-for-that/">post on phone apps</a> she likes and has proposed in her post (quasi) simu-blogging on the topic.  I&#8217;ll bite.  I&#8217;ll focus mine on the limited mapping apps I have on my iPod, since my smartphone solution is an iPod touch and a Motorola flip phone.</p>
<p><strong>App number one: <a href="http://contabilidadintegrada.com/tiltmeter">Tiltmeter</a>.</strong></p>
<p><a href="http://smathermather.files.wordpress.com/2012/01/tiltmeter1.png"><img class="size-full wp-image-1192 alignnone" title="Tiltmeter" src="http://smathermather.files.wordpress.com/2012/01/tiltmeter1.png" alt="" width="412" height="469" /></a></p>
<p>Tiltmeter is simply that&#8211; it logs at a specified interval the 2D axis tilt of your iPod or iPhone, and can show that visually or e-mail the log to you.  Oh, where were you Tiltmeter, when I was building camera arrays, putting bandpass filters on them, and launching them on a 12-foot balloon.</p>
<p><a href="http://smathermather.files.wordpress.com/2012/01/balloon.png"><img class="alignnone size-full wp-image-1193" title="Balloon from above" src="http://smathermather.files.wordpress.com/2012/01/balloon.png" alt="" width="720" height="684" /></a></p>
<p><a href="http://smathermather.files.wordpress.com/2012/01/balloon_shots_from.png"><img class="alignnone size-full wp-image-1194" title="balloon_shots_from" src="http://smathermather.files.wordpress.com/2012/01/balloon_shots_from.png" alt="" width="677" height="654" /></a></p>
<p>It was a low cost, few band, hyperspectral attempt at calculating red-edge effects for productivity estimations.  A very early attempt at something similar to <a href="http://grassrootsmapping.org/">Grassroots Mapping</a>.  Let&#8217;s just say, a tiltmeter would have really made the georeferencing easier&#8230; .</p>
<p><strong>App number B:<a href="http://ridethecity.com/about"> Ride the City</a>.</strong></p>
<div id="attachment_1195" class="wp-caption alignnone" style="width: 700px"><a href="http://smathermather.files.wordpress.com/2012/01/ridethecity.png"><img class="size-full wp-image-1195" title="ridethecity" src="http://smathermather.files.wordpress.com/2012/01/ridethecity.png" alt="" width="690" height="583" /></a><p class="wp-caption-text">Ride the City (Desktop web interface)</p></div>
<p>Ride the city is a very nice point-to-point routing solution for a desktop or mobile client.  It&#8217;s a discreet app on the mobile side.  Other than not doing looped (recreational) mapping support, it&#8217;s a pretty cool application.  Great for commuter bicycling.</p>
<p><strong>App Gamma: PDF Maps</strong></p>
<p><a href="http://www.avenza.com/category/tags/pdf-maps-app">PDF Maps</a> is a tool from Avenza Systems for viewing Geo PDFs.  I&#8217;ll confess, since I have an iPod touch, and therefore no GPS, I haven&#8217;t run this one through the ringer (and there are other likely choices), but it could be a really useful tool in concert, e.g., with the <a href="http://store.usgs.gov/">Geo PDFs from the USGS</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smathermather.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smathermather.wordpress.com/1190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smathermather.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smathermather.wordpress.com/1190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smathermather.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smathermather.wordpress.com/1190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smathermather.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smathermather.wordpress.com/1190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smathermather.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smathermather.wordpress.com/1190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smathermather.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smathermather.wordpress.com/1190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smathermather.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smathermather.wordpress.com/1190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1190&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smathermather.wordpress.com/2012/01/02/theres-an-app-for-that-alternate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/872c3984fe0bf0b61f82d3ddfcd23346?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smathermather</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2012/01/tiltmeter1.png" medium="image">
			<media:title type="html">Tiltmeter</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2012/01/balloon.png" medium="image">
			<media:title type="html">Balloon from above</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2012/01/balloon_shots_from.png" medium="image">
			<media:title type="html">balloon_shots_from</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2012/01/ridethecity.png" medium="image">
			<media:title type="html">ridethecity</media:title>
		</media:content>
	</item>
		<item>
		<title>2011 in review &#8212; Laziest post possible</title>
		<link>http://smathermather.wordpress.com/2011/12/31/2011-in-review-laziest-post-possible/</link>
		<comments>http://smathermather.wordpress.com/2011/12/31/2011-in-review-laziest-post-possible/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 00:59:58 +0000</pubDate>
		<dc:creator>smathermather</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://smathermather.wordpress.com/?p=1186</guid>
		<description><![CDATA[Happy New Year everyone!  In a beautifully global fashion, the first New Year wishes I received this year were out of Africa from two folks I follow on twitter.  In that same vein, my blog is comfortably global, with readers on all the continents, Antarctica notwithstanding.  As I used to do polar research, I suppose [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1186&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Happy New Year everyone!  In a beautifully global fashion, the first New Year wishes I received this year were out of Africa from two folks I follow on twitter.  In that same vein, my blog is comfortably global, with readers on all the continents, Antarctica notwithstanding.  As I used to do polar research, I suppose I should change that 6 out of 7 to 7 out of 7, but it could be that it might be hard to get decent numbers down there.  WordPress may also not tabulate them.  Regardless, hello to summer residents of Antarctica, all 5-thousand or so of you.  I love polar stereographic.  <a href="http://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system">UTM</a> wouldn&#8217;t be the same without its partner <a href="http://en.wikipedia.org/wiki/Universal_Polar_Stereographic_coordinate_system">UPS</a>.</p>
<p>Anyway, I am humbled by my readership, people who keep me in line with smart comments, and guide my growth in the geospatial world.  Report excerpt and link as follows:</p>
<p>&#8220;The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.</p>
<p><a href="http://smathermather.wordpress.com/2011/annual-report/"><img class="alignnone size-full wp-image-1187" title="Where did they come from?" src="http://smathermather.files.wordpress.com/2011/12/screen-shot-2011-12-31-at-7-56-59-pm.png" alt="" width="750" height="516" /></a></p>
<p>Here&#8217;s an excerpt:</p>
<blockquote><p>The concert hall at the Syndey Opera House holds 2,700 people. This blog was viewed about <strong>14,000</strong> times in 2011. If it were a concert at Sydney Opera House, it would take about 5 sold-out performances for that many people to see it.</p></blockquote>
<p><a href="/2011/annual-report/">Click here to see the complete report.</a>&#8220;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smathermather.wordpress.com/1186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smathermather.wordpress.com/1186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smathermather.wordpress.com/1186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smathermather.wordpress.com/1186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smathermather.wordpress.com/1186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smathermather.wordpress.com/1186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smathermather.wordpress.com/1186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smathermather.wordpress.com/1186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smathermather.wordpress.com/1186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smathermather.wordpress.com/1186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smathermather.wordpress.com/1186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smathermather.wordpress.com/1186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smathermather.wordpress.com/1186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smathermather.wordpress.com/1186/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1186&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smathermather.wordpress.com/2011/12/31/2011-in-review-laziest-post-possible/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/872c3984fe0bf0b61f82d3ddfcd23346?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smathermather</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2011/12/screen-shot-2011-12-31-at-7-56-59-pm.png" medium="image">
			<media:title type="html">Where did they come from?</media:title>
		</media:content>
	</item>
		<item>
		<title>gdal_warp, cutlines, and cwhere&#8211; simple tip for use on Linux</title>
		<link>http://smathermather.wordpress.com/2011/12/17/gdal_warp-cutlines-and-cwhere-simple-tip-for-use-on-linux/</link>
		<comments>http://smathermather.wordpress.com/2011/12/17/gdal_warp-cutlines-and-cwhere-simple-tip-for-use-on-linux/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 05:05:29 +0000</pubDate>
		<dc:creator>smathermather</dc:creator>
				<category><![CDATA[GDAL]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://smathermather.wordpress.com/?p=1180</guid>
		<description><![CDATA[Mini GDAL tip of the day: gdalwarp, especially in combination with gdal_merge, is a powerful tool for doing all sorts on nice aggregation (read: mosaic&#8217;ing) of spatial raster data.  Unfortunately, at least with a google search, there&#8217;s very little to be found on demonstrating the use of queries in conjunction with cutlines, probably because in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1180&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Mini GDAL tip of the day:</p>
<p>gdalwarp, especially in combination with gdal_merge, is a powerful tool for doing all sorts on nice aggregation (read: mosaic&#8217;ing) of spatial raster data.  Unfortunately, at least with a google search, there&#8217;s very little to be found on demonstrating the use of queries in conjunction with cutlines, probably because in general these queries are not difficult to figure out.</p>
<p>In a <a href="http://smathermather.wordpress.com/2011/03/04/historical-usgs-quads/">previous post</a>, I demonstrated using this to stitch together USGS quads.  I found out when I tried to run this code on a Linux machine, the command like code was a little different.  Instead of:</p>
<p><em><code>gdal_merge -o usgs_merge.tif -createonly input1.tif input2.tif ...<br />
gdalwarp -cutline quadrangle_index_24k.shp -cwhere "quadname_ = West_View" West_View.tif usgs_merge.tif</code></em></p>
<p>I found I needed some extra single quotes to get my string literal to not be interpreted as a field:</p>
<p><pre class="brush: bash;">

gdalwarp -cutline quadrangle_index_24k.shp -cwhere &quot;quadname_ = 'West_View'&quot; West_View.tif usgs_merge.tif

</pre></p>
<p>Ah, that&#8217;s better.  Now I have a nice big mosaic of DEMs for my region with perfect cuts where the overlaps used to be.  (The change is hard to see&#8211; look for single quotes around West_View in &#8220;quadname_ = &#8216;West_View&#8217;&#8221;)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smathermather.wordpress.com/1180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smathermather.wordpress.com/1180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smathermather.wordpress.com/1180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smathermather.wordpress.com/1180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smathermather.wordpress.com/1180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smathermather.wordpress.com/1180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smathermather.wordpress.com/1180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smathermather.wordpress.com/1180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smathermather.wordpress.com/1180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smathermather.wordpress.com/1180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smathermather.wordpress.com/1180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smathermather.wordpress.com/1180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smathermather.wordpress.com/1180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smathermather.wordpress.com/1180/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1180&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smathermather.wordpress.com/2011/12/17/gdal_warp-cutlines-and-cwhere-simple-tip-for-use-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/872c3984fe0bf0b61f82d3ddfcd23346?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smathermather</media:title>
		</media:content>
	</item>
		<item>
		<title>GDAL Slopes&#8211; Local Hydrologic Slope vs. the Standard Approach</title>
		<link>http://smathermather.wordpress.com/2011/12/15/gdal-slopes-local-hydrologic-slope-vs-the-standard-approach/</link>
		<comments>http://smathermather.wordpress.com/2011/12/15/gdal-slopes-local-hydrologic-slope-vs-the-standard-approach/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 04:03:56 +0000</pubDate>
		<dc:creator>smathermather</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Ecology]]></category>
		<category><![CDATA[GDAL]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[DEM]]></category>
		<category><![CDATA[Digital Surface Model]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[Topographic Classification]]></category>

		<guid isPermaLink="false">http://smathermather.wordpress.com/?p=1166</guid>
		<description><![CDATA[Open Source software is not, of course just about warm and fuzzies, great support, rapid development cycles, shared costs, etc., it&#8217;s also about getting your hands dirty with someone else&#8217;s code and implementing stuff more quickly and more intelligently because of it, and hopefully learning something in the process.  You don&#8217;t have to poke under [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1166&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Open Source software is not, of course just about warm and fuzzies, great support, rapid development cycles, shared costs, etc., it&#8217;s also about getting your hands dirty with someone else&#8217;s code and implementing stuff more quickly and more intelligently because of it, and hopefully learning something in the process.  You don&#8217;t have to poke under the hood to drive the car, but sometimes it&#8217;s nice to anyway.</p>
<p>The two <em>normal</em> approaches to calculating slope in GIS raster tools (used in applications from ESRI&#8217;s Spatial Analyst and GDAL&#8217;s <a href="http://www.gdal.org/gdaldem.html">gdaldem</a>) are Horn&#8217;s formula and Zevenbergen &amp; Thorne&#8217;s formula, both integrated calculations of slope that do a bit of generalization in the process of calculating slope.  This is particularly useful if you are using slope for more than a localized calculations, for example in doing estimates of local light conditions.  That said, if you want to match local hydrologic slope (something which will more closely approximate a field measurement of slope), you are better off using a different formula altogether.  An article a colleague sent me: &#8220;When GIS Slope is Not What You Think&#8221; in this month&#8217;s <a href="http://www.safnet.org/publications/forestrysource/index.cfm"><em>The Forestry Source</em></a> tipped me off to this, and I thought I&#8217;d do some quick and dirty digging in the GDAL code to see if I could implement something a little different.</p>
<p>Here is the standard Horn approach as currently implemented in GDAL:</p>
<p><pre class="brush: cpp;">
float GDALSlopeHornAlg (float* afWin, float fDstNoDataValue, void* pData)
{
    const double radiansToDegrees = 180.0 / M_PI;
    GDALSlopeAlgData* psData = (GDALSlopeAlgData*)pData;
    double dx, dy, key;

    using std::max;
    dx = (max((afWin[0], afWin[3], afWin[3], afWin[6])) -
          max((afWin[2], afWin[5], afWin[5], afWin[8])))/psData-&gt;ewres;

    dy = ((afWin[6], afWin[7], afWin[7], afWin[8]) -
          max((afWin[0], afWin[1], afWin[1], afWin[2])))/psData-&gt;nsres;

    key = (dx * dx + dy * dy);

    if (psData-&gt;slopeFormat == 1)
        return (float) (atan(sqrt(key) / (8*psData-&gt;scale)) * radiansToDegrees);
    else
        return (float) (100*(sqrt(key) / (8*psData-&gt;scale)));
}
</pre></p>
<p>Borrowing from gdaldem roughness we implement this:</p>
<p><pre class="brush: plain;">
float GDALSlopeHydroAlg (float* afWin, float fDstNoDataValue, void* pData)

{
    // Hydrologic Slope is the max
    //  local slope btw center cell and adjacent cells

    const double radiansToDegrees = 180.0 / M_PI;
    GDALSlopeAlgData* psData = (GDALSlopeAlgData*)pData;
                double key;

    float pafLocalMin = afWin[0];
     float pafLocalMax = afWin[0];

    for ( int k = 1; k &lt; 9; k++)
    {
        if (afWin[k] &lt; pafLocalMin)
        {
            pafLocalMin=afWin[k];
        }

        if (afWin[k] &gt; pafLocalMax)
        {
            pafLocalMax=afWin[k];
        }
    }

    key = afWin[4] - pafLocalMin;

    if (psData-&gt;slopeFormat == 1)
        return (float) (atan(sqrt(key) / (2*psData-&gt;scale)) * radiansToDegrees);
    else
        return (float) (100*(sqrt(key) / (2*psData-&gt;scale)));
}
</pre></p>
<p>Output is rougher than the original, as expected:</p>
<div id="attachment_1168" class="wp-caption alignnone" style="width: 582px"><a href="http://smathermather.files.wordpress.com/2011/12/hydro_slope.png"><img class="size-full wp-image-1168" title="Local Hydrologic Slope" src="http://smathermather.files.wordpress.com/2011/12/hydro_slope.png" alt="" width="572" height="571" /></a><p class="wp-caption-text">Local Hydrologic Slope</p></div>
<div id="attachment_1169" class="wp-caption alignnone" style="width: 583px"><a href="http://smathermather.files.wordpress.com/2011/12/screen-shot-2011-12-15-at-10-19-32-pm.png"><img class="size-full wp-image-1169" title="Zevenbergen &amp; Thorne’s Slope" src="http://smathermather.files.wordpress.com/2011/12/screen-shot-2011-12-15-at-10-19-32-pm.png" alt="" width="573" height="570" /></a><p class="wp-caption-text">Zevenbergen &amp; Thorne’s Slope</p></div>
<p>And looking at the stats we see a larger standard deviation for local hydrologic slope:</p>
<p><pre class="brush: bash;">

Z:\&gt;gdalinfo Hydrologic_slope.tif
Driver: GTiff/GeoTIFF
Files: Hydrologic_slope.tif
...

Metadata:
STATISTICS_MINIMUM=0
STATISTICS_MAXIMUM=46.168109893799
STATISTICS_MEAN=10.206419514979
STATISTICS_MEDIAN=2.8041767686283e-266
STATISTICS_MODE=1.4463930749435e-307
STATISTICS_STDDEV=5.3794018830967
LAYER_TYPE=athematic

Z:\&gt;gdalinfo Zevenbergen_Thorne.tif
Driver: GTiff/GeoTIFF
Files: Zevenbergen_Thorne.tif
...
Metadata:
STATISTICS_MINIMUM=0
STATISTICS_MAXIMUM=52.424499511719
STATISTICS_MEAN=3.0666069784504
STATISTICS_MEDIAN=4.331070843283e-184
STATISTICS_MODE=-4
STATISTICS_STDDEV=3.567882216098
LAYER_TYPE=athematic

</pre></p>
<p>A couple of additional notes.  First, this is 2.5ft resolution data.  At this resolution, the differences in algorithms may be somewhat academic.  Also, of note&#8211; the range for the Zevenbergen-Thorn slope algorithm is greater than that for the local hydrologic slope.  This is an outcome I did not anticipate.</p>
<p>&nbsp;</p>
<p>Update:</p>
<p>Hmmm, looks like I have more revisions and questions from the GDAL dev board. May have to revisit this… .  Forgot about the corners of my 3&#215;3 window&#8230; .</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smathermather.wordpress.com/1166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smathermather.wordpress.com/1166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smathermather.wordpress.com/1166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smathermather.wordpress.com/1166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smathermather.wordpress.com/1166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smathermather.wordpress.com/1166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smathermather.wordpress.com/1166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smathermather.wordpress.com/1166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smathermather.wordpress.com/1166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smathermather.wordpress.com/1166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smathermather.wordpress.com/1166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smathermather.wordpress.com/1166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smathermather.wordpress.com/1166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smathermather.wordpress.com/1166/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1166&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smathermather.wordpress.com/2011/12/15/gdal-slopes-local-hydrologic-slope-vs-the-standard-approach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/872c3984fe0bf0b61f82d3ddfcd23346?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smathermather</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2011/12/hydro_slope.png" medium="image">
			<media:title type="html">Local Hydrologic Slope</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2011/12/screen-shot-2011-12-15-at-10-19-32-pm.png" medium="image">
			<media:title type="html">Zevenbergen &#38; Thorne’s Slope</media:title>
		</media:content>
	</item>
		<item>
		<title>Landscape Position: Conclusion? (part 2)</title>
		<link>http://smathermather.wordpress.com/2011/12/07/landscape-position-conclusion-part-2/</link>
		<comments>http://smathermather.wordpress.com/2011/12/07/landscape-position-conclusion-part-2/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 12:19:05 +0000</pubDate>
		<dc:creator>smathermather</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Ecology]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Landscape Position]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[POV-Ray]]></category>
		<category><![CDATA[DEM]]></category>
		<category><![CDATA[Digital Surface Model]]></category>
		<category><![CDATA[Ecological Land Type]]></category>
		<category><![CDATA[Ecological Modeling]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[LiDAR]]></category>
		<category><![CDATA[povray]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Topographic Classification]]></category>
		<category><![CDATA[Topographic Position]]></category>

		<guid isPermaLink="false">http://smathermather.wordpress.com/?p=1157</guid>
		<description><![CDATA[From earlier post: &#8220;I&#8217;ve managed to pilot most of a fast high resolution landscape position workflow with PovRay as my magic tool. The final steps I hope to pipe through PostGIS Raster. In the meantime a screenshot and description: blues are riparian, raw ocre, etc upland categories, grey is mostly flat lake plain and mid [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1157&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>From earlier <a href="http://smathermather.wordpress.com/2011/11/30/landscape-position-conclusion-2/">post</a>:</p>
<p><em>&#8220;I&#8217;ve managed to pilot most of a fast high resolution landscape position workflow with PovRay as my magic tool. The final steps I hope to pipe through PostGIS Raster. In the meantime a screenshot and description: blues are riparian, raw ocre, etc upland categories, grey is mostly flat lake plain and mid slopes, all derived from just a high res DEM input (no hydro lines as input, so it works on areas where you don&#8217;t know where the streams may be). There will be more categories in the final, in the meantime, welcome to December.&#8221;</em></p>
<p>I didn&#8217;t use PostGIS Raster, but the incredibly useful <a href="http://smathermather.wordpress.com/2011/12/01/gdal_calc-py-raster-calculator-using-numby-functions/">gdal_calc.py</a> to finish out my landscape position calculations.  I will endeavor to post my code to github soon, but the parts and pieces include using <a href="http://www.gdal.org/">gdal</a> and <a href="http://www.povray.org/">PovRay</a>.  PovRay helps with the sampling (really!) of nearby neighbors in the raster DEM, and gdal does the averaging and differencing of those to get relative landscape position.  I spent some time yesterday scratching my head over how to show all the new landscape position information on a readable and useable map, and after discussion with collegues, decided to use it to divide the world into two categories&#8211; riparian &amp; lowland + headwaters &amp; upland (not reflected yet in the labels).  To find out more about landscape position, follow <a href="http://smathermather.wordpress.com/category/ecology/landscape-position/">this link</a>, or better yet <a href="http://www.jennessent.com/arcview/tpi.htm">this one</a>.  (BTW, the green is park land, blue is riparian/lowland/stream networks, purple is the basin boundary).</p>
<div id="attachment_1158" class="wp-caption alignnone" style="width: 933px"><a href="http://smathermather.files.wordpress.com/2011/12/riparian_map.png"><img class="size-full wp-image-1158" title="Riparian Map" src="http://smathermather.files.wordpress.com/2011/12/riparian_map.png" alt="" width="923" height="619" /></a><p class="wp-caption-text">Riparian map based on landscape position, calculated using PovRay and GDAL.</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smathermather.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smathermather.wordpress.com/1157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smathermather.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smathermather.wordpress.com/1157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smathermather.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smathermather.wordpress.com/1157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smathermather.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smathermather.wordpress.com/1157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smathermather.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smathermather.wordpress.com/1157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smathermather.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smathermather.wordpress.com/1157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smathermather.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smathermather.wordpress.com/1157/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smathermather.wordpress.com&amp;blog=4275586&amp;post=1157&amp;subd=smathermather&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smathermather.wordpress.com/2011/12/07/landscape-position-conclusion-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/872c3984fe0bf0b61f82d3ddfcd23346?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smathermather</media:title>
		</media:content>

		<media:content url="http://smathermather.files.wordpress.com/2011/12/riparian_map.png" medium="image">
			<media:title type="html">Riparian Map</media:title>
		</media:content>
	</item>
	</channel>
</rss>
