<?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>spatial nodes &#187; work</title>
	<atom:link href="http://blog.minst.net/tag/work/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.minst.net</link>
	<description>Thoughts of a lost soul</description>
	<lastBuildDate>Fri, 16 Jul 2010 16:24:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Visualizing OpenStreetMap history &#8211; part 2</title>
		<link>http://blog.minst.net/2010/07/16/visualizing-openstreetmap-history-part-2</link>
		<comments>http://blog.minst.net/2010/07/16/visualizing-openstreetmap-history-part-2#comments</comments>
		<pubDate>Fri, 16 Jul 2010 16:10:12 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[GIS]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[OpenStreetMap]]></category>
		<category><![CDATA[OSM]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://blog.minst.net/?p=214</guid>
		<description><![CDATA[Thanks to the hard work of Vincent we now have a database with the average version and average age of nodes per grid cell. Now we can start to get a feeling of the data. I&#8217;ve rendered both datasets for Amsterdam on a 10&#215;10m grid. In general the idea is that red is bad and [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to the hard work of Vincent we now have a database with the average version and average age of nodes per grid cell. Now we can start to get a feeling of the data. I&#8217;ve rendered both datasets for Amsterdam on a 10&#215;10m grid. In general the idea is that red is bad and green is good. The younger a node is, the more likely it reflects the current situation in the real world. Also the higher the version number, the more people have been looking at that node and corrected it.</p>
<p>At least that is the theory Martijn tries to work with.</p>
<div id="attachment_215" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.minst.net/wp-content/uploads/2010/07/AgeAdam.png"><img class="size-medium wp-image-215" title="OSM node-age" src="http://blog.minst.net/wp-content/uploads/2010/07/AgeAdam-300x212.png" alt="" width="300" height="212" /></a><p class="wp-caption-text">The age in days for OpenStreetMap nodes</p></div>
<p>You can see a clear pattern emerging here, apparently there are areas which get mapped in a short period of time and never touched again. The white squares just didn&#8217;t have any nodes in it, so they contain no data.</p>
<div id="attachment_216" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.minst.net/wp-content/uploads/2010/07/VersionAdam.png"><img class="size-medium wp-image-216" title="OSM node-version" src="http://blog.minst.net/wp-content/uploads/2010/07/VersionAdam-300x212.png" alt="" width="300" height="212" /></a><p class="wp-caption-text">The version of OSM nodes</p></div>
<p>It is more difficult to see patterns here. Whereas with age in days the number gives you an instant grasp of the meaning, the version number is less obvious. We probably need to do a statistical analysis of version numbers in OSM. This way we can attach some (relative) meaning to the average version number.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2010/07/16/visualizing-openstreetmap-history-part-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizing OpenStreetMap history</title>
		<link>http://blog.minst.net/2010/07/06/visualizing-openstreetmap-history</link>
		<comments>http://blog.minst.net/2010/07/06/visualizing-openstreetmap-history#comments</comments>
		<pubDate>Tue, 06 Jul 2010 16:12:07 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[GIS]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[OpenStreetMap]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://blog.minst.net/?p=207</guid>
		<description><![CDATA[I&#8217;m working with Martijn and Vincent on a way to visualize the history of OpenStreetmap data for their analysis of the &#8216;crowd-quality&#8217; of the data. I used my favorite visualization tool Processing to visualize the history of one node:

The red circle is the final location of the node and the path is the order of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working with Martijn and Vincent on a way to visualize the history of OpenStreetmap data for their analysis of the &#8216;crowd-quality&#8217; of the data. I used my favorite visualization tool <a href="http://processing.org/">Processing </a>to visualize the history of one <a href="http://www.openstreetmap.org/api/0.6/node/46090136/history">node</a>:</p>
<p><a href="http://blog.minst.net/wp-content/uploads/2010/07/tracks2.png"><img class="alignnone size-medium  wp-image-210" title="Node: 46090136" src="http://blog.minst.net/wp-content/uploads/2010/07/tracks2-300x225.png" alt="" width="300" height="225" /></a></p>
<p>The red circle is the final location of the node and the path is the order of changes. You can see that the first changes were much more rough than the last ones.</p>
<p>I also did the same for an entire <a href="http://www.openstreetmap.org/api/0.6/way/10210239/history">way</a>, where the way itself is shown in blue and the versions of the nodes are shown next to the nodes.</p>
<p><a href="http://blog.minst.net/wp-content/uploads/2010/07/tracks1.png"><img class="alignnone size-medium wp-image-209" title="Way 10210239" src="http://blog.minst.net/wp-content/uploads/2010/07/tracks1-300x225.png" alt="" width="300" height="225" /></a></p>
<p>The trouble is that it is currently quite difficult to get the full (spatial) history of an area in OpenStreetMap. Once we find a way to do so I hope to generate more and play a bit with different visualization styles and methods.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2010/07/06/visualizing-openstreetmap-history/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizing gps tracks with Processing</title>
		<link>http://blog.minst.net/2009/12/21/visualizing-gps-tracks-with-processing</link>
		<comments>http://blog.minst.net/2009/12/21/visualizing-gps-tracks-with-processing#comments</comments>
		<pubDate>Mon, 21 Dec 2009 15:04:21 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[GIS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://blog.minst.net/?p=198</guid>
		<description><![CDATA[At work we got an i-gotU (a GPS logger) as a Christmas present. To show what one can do with it I decided to ask a few people to use their i-gotU to record their travels for two weeks. This resulted in over 42000 locations done by 8 different persons. Each person got his/her own [...]]]></description>
			<content:encoded><![CDATA[<p>At work we got an <a href="http://www.i-gotu.com/">i-gotU</a> (a GPS logger) as a Christmas present. To show what one can do with it I decided to ask a few people to use their i-gotU to record their travels for two weeks. This resulted in over 42000 locations done by 8 different persons. Each person got his/her own color in the visualization to be able to see when people were near one another. Since the office is in Amsterdam and most people live in (different parts of) Amsterdam you can quickly see the contours of Amsterdam&#8217;s city-plan appear. Also interestingly is to note that people have their own specific areas where they spend most of their time.</p>
<p>To visualize these tracks I used <a href="http://processing.org/">Processing</a>, &#8216;an open source programming language and environment for people who want to program images, animation, and interactions.&#8217;  There are lots of plugins to read different data formats, an interesting one for this project is the <a href="http://processing.org/hacks/hacks:gpx">gpx library</a>. The plan was to render the tracks of each person in a different color, tracks which happened at the same time should be drawn at the same time. This way you can see which people are at the same time at the same location. Each track would fade out in time, leaving a thin line for past tracks.</p>
<p>To do this on a track-basis however turned out to be quite difficult for my limited knowledge of Processing and the time I had available. So instead of using the gpx module I created a flat table with all locations sorted by time. Each row of the table contains lon,lat,color-id,time. The program iterates through all 42000+ rows and draws the locations as a dot. The size of the dot depends on how &#8216;old&#8217; the point is. The last 200 points are drawn with a diminishing size, creating the worm-like effect in the animation. Note that it doesn&#8217;t take into account the actual time between points, just if it is next in line.</p>
<p>A few tweaks were added: Holland in unprojected lat-lon looks odd to dutch people, so I implemented a simple projection library to reproject the points to a semi-RD (dutch projection). Also I wanted to dynamically zoom to the action (not everything was happening in Amsterdam). I did this by calculating the minimum and maximum X and Y for the last 200 points. I wanted the location of our office building to be in view all the time, to provide a point of reference.</p>
<p>The source code can be found <a href="http://blog.minst.net/wp-content/uploads/2009/12/drawing.zip">here </a>if you are really interested. There are three files: Table.pde as written by Ben Fry for his book Visualizing Data, Soprojection.pde, written by <a href="http://blog.geodeo.nl/">Steven Fruijtier</a> at my request and Drawing.pde is hacked together by me. This is a very crude and brute-force approach to render a series of tracks, so please use it with care. Since it needs to recalculate each point for each frame it tends to become slower as it advances through the table.</p>
<p><a href="http://blog.minst.net/2009/12/21/visualizing-gps-tracks-with-processing"><em>Click here to view the embedded video.</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2009/12/21/visualizing-gps-tracks-with-processing/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WFS 1.1.0, GML 3.1.1 and OpenLayers</title>
		<link>http://blog.minst.net/2009/01/22/wfs-110-gml-311-and-openlayers</link>
		<comments>http://blog.minst.net/2009/01/22/wfs-110-gml-311-and-openlayers#comments</comments>
		<pubDate>Thu, 22 Jan 2009 17:55:51 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[GIS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[OpenLayers]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://blog.minst.net/?p=162</guid>
		<description><![CDATA[In the INSPIRE framework we are working on the ESDIN project and are using the EuroGeoNames (EGN) project as an implementation of ESDIN. INSPIRE is a big thing within the GIS world in Europe and loads of documents have been written so far.
We&#8217;re involved in both ESDIN and EGN and we decided to use the [...]]]></description>
			<content:encoded><![CDATA[<p>In the <a href="http://www.inspire-geoportal.eu/">INSPIRE </a>framework we are working on the <a href="http://www.esdin.eu/">ESDIN </a>project and are using the <a href="http://www.inspire-geoportal.eu/">EuroGeoNames </a>(EGN) project as an implementation of ESDIN. INSPIRE is a big thing within the GIS world in Europe and loads of documents have been written so far.</p>
<p>We&#8217;re involved in both ESDIN and EGN and we decided to use the latter as a trial for the first. Together with our partners we&#8217;ve setup a series of servers to fulfill the needs of the projects. The main standard used is the latest WFS and GML versions, which have the annoying disadvantage that there are few clients available.</p>
<p>To be able to show nicely (as in not an XML file) that everything worked I was asked to build a webclient which would show a map and the data from the EGN service for that area. I figured that this was once again a good reason to look into the latest developments for OpenLayers. I quickly discovered that the released version (2.7) doesn&#8217;t support WFS 1.1.0 so I asked on the mailinglist if people already tried to implement it (and if not, pointers how to do so). Luckily people already did the work and created various patches for the support. (thanks tschaub, bartvde and others)</p>
<p>The most important patch is the one which implements protocols for WFS: ticket <a href="http://trac.openlayers.org/ticket/1648">1648 </a>and its <a href="http://trac.openlayers.org/attachment/ticket/1648/wfs.patch">wfs.patch</a> The main disadvantage of this patch was in my case that it tried to minimise the number of requests to the WFS server (which in general is a good thing). It requests all the features which are within twice the size of the viewport and it doesn&#8217;t request new features when you zoom in. However our server is limited to 10 features per request this results in very interesting behavior. For a starter all the 10 feature could be outside your viewport and also very funny is that shown feature might dissappear when you move the page too much (it requests new features in that case and the first 10 might be outside the viewport). A second <a href="http://trac.openlayers.org/attachment/ticket/1830/resFactor.patch">patch</a>, on ticket <a href="http://trac.openlayers.org/ticket/1830">1830</a>, provided a more aggressive feature update: each zoom action triggers a new request and I set the request-boundingbox-ratio to 1, meaning only those feature within the viewport are requested. This means that every action triggers a new request, which is heavy on the server.</p>
<p>However this is just a reference implementation and hopefully for actual implementations they remove the 10 feature limit. For those interested the reference implementation can be found at <a href="http://research.geodan.nl/egn">http://research.geodan.nl/egn</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2009/01/22/wfs-110-gml-311-and-openlayers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Surface</title>
		<link>http://blog.minst.net/2009/01/16/microsoft-surface</link>
		<comments>http://blog.minst.net/2009/01/16/microsoft-surface#comments</comments>
		<pubDate>Fri, 16 Jan 2009 17:43:46 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[TableTop]]></category>
		<category><![CDATA[user interaction]]></category>
		<category><![CDATA[Surface]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.minst.net/?p=147</guid>
		<description><![CDATA[Today the Microsoft Surface arrived, finally. They arrived in big boxes suggesting big tables, but alas they are actually pretty small. Microsoft envisages them as lounge table, as such they are very low, too low to sit comfortably on a normal chair. Being used to the Circle12 DiamondTouch, the Surface is both small and heavy. [...]]]></description>
			<content:encoded><![CDATA[<p>Today the Microsoft Surface arrived, finally. They arrived in big boxes suggesting big tables, but alas they are actually pretty small. Microsoft envisages them as lounge table, as such they are very low, too low to sit comfortably on a normal chair. Being used to the Circle12 DiamondTouch, the Surface is both small and heavy. Weighing about 80kg it is difficult to move it and the actual display area is about half the size of the DiamondTouch.</p>
<p>We were supposed to have two normal and one developer edition but it wasn&#8217;t very clear which one was which so we picked one and carried it to our office. This turned out to quite tricky, this thing is heavy and doesn&#8217;t have any clear handles. In the end we carried it by holding the projection-surface &#8230;</p>
<p>Once setup we had to fiddle a bit to get the powercable connected and find the proper (two) powerswitches. Once it booted it prompted us an EULA we had to accept. However the Surface is designed to be a standalone machine completely controlled by touch but before the touch was working we had to accept the EULA, which was only accessible by touch &#8230; hm</p>
<div id="attachment_148" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.minst.net/wp-content/uploads/2009/01/dscn0274.jpg"><img class="size-medium wp-image-148" title="EULA for the Surface" src="http://blog.minst.net/wp-content/uploads/2009/01/dscn0274-300x225.jpg" alt="You need to accept to start touch, and you need touch to accept" width="300" height="225" /></a><p class="wp-caption-text">You need to accept to start touch, and you need touch to accept</p></div>
<p>So we had to plug in a mouse, but apparently we hadn&#8217;t chosen the developer edition since no usb ports where visible. The manual explained that we need to open up the side of the table to access the ports. After two screws and a bit of force we managed to open up the side and it gave us full access to all normal PC ports.</p>
<div id="attachment_149" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.minst.net/wp-content/uploads/2009/01/dscn0276.jpg"><img class="size-medium wp-image-149" title="Surface ports" src="http://blog.minst.net/wp-content/uploads/2009/01/dscn0276-300x225.jpg" alt="The surface insides" width="300" height="225" /></a><p class="wp-caption-text">The surface insides</p></div>
<p>It asked us to create an admin account and once it was setup it gave us the choice to login as that admin or as TableUser, since we had no clue what the password for TableUser was, we logged in as admin.  After a bit we were shown a fresh Vista desktop with a few shortcuts. The most obvious for us was the calibration tool. We calibrated our table and started a touch application. It failed to run complaining that the filtergraph was not found at the location specified. We neither had knew what a filtergraph was, nor what the location specified was.  This got us stuck for quite a while, the manuals didn&#8217;t help and the online site with information was only accessible by invitation and due to some miscommunication(?) we were not (yet) invited.</p>
<p>Digging into things like registries, hidden folders and binary blobs we finally discovered that there are two versions of the calibration tool. One which does a background-light calibration and one which does a per camera calibration. We had run both, but we failed to notice that the latter had to run 5 times (5 cameras in the surface). Once we had done so the different surface programs ran without errors and without effect.</p>
<p>Pretty annoyed we banged our fist on the table and that seemed to have effect. It turned out that putting a lot of force on the table gave results, indicating a calibration issue. Having no idea how to finetune the calibration we started to experiment with different ways of touching. The current consensus is that it is designed for ubergeeks who never see the sun and are pure white; touching the Surface with a finger doesn&#8217;t give a result, wrapping the finger in white tissue suddenly does &#8230;</p>
<div id="attachment_150" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.minst.net/wp-content/uploads/2009/01/dscn0556.jpg"><img class="size-medium wp-image-150" title="The subsurface pond" src="http://blog.minst.net/wp-content/uploads/2009/01/dscn0556-300x225.jpg" alt="The 'attract' application" width="300" height="225" /></a><p class="wp-caption-text">The &#39;attract&#39; application</p></div>
<p>Hopefully we will figure out soon how to tweak the calibration and otherwise we need to buy a set of white surgical gloves to hand out to users <img src='http://blog.minst.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><img src="file:///H:/DCIM/100NIKON/DSCN0274.JPG" alt="" /></p>
<p><img src="file:///H:/DCIM/100NIKON/DSCN0274.JPG" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2009/01/16/microsoft-surface/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
