<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en"><title type="text">Opticks Spectrum</title><link rel="alternate" type="text/html" href="http://www.opticks.org/feeds/spectrum/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/OpticksSpectrum" /><author><name>Opticks Team</name><email>dadkins@ball.com</email></author><updated>2012-05-25T14:45:02+00:00</updated><generator uri="http://intertwingly.net/code/venus/">Venus</generator><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny" /><feedburner:info uri="opticksspectrum" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><id>http://www.opticks.org/feeds/spectrum/atom.xml</id><feedburner:emailServiceId>OpticksSpectrum</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry><title type="text">Dustan Adkins Blog: Google Summer of Code 2012 and Opticks 4.9.0rc1-Extras 1.6.0rc1</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/EUwP0r6UUGg/Google+Summer+of+Code+2012+and+Opticks+4.9.0rc1-Extras+1.6.0rc1" /><author><name>Dustan Adkins</name></author><updated>2012-04-24T09:29:56-07:00</updated><id>tag:opticks.org,2009:blogpost-7307383-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~dadkins">Dustan Adkins</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <h3><a name="GoogleSummerofCode2012andOpticks4.9.0rc1-Extras1.6.0rc1-GoogleSummerofCode2012" />Google Summer of Code 2012</h3>
<p>I would like to congratulate our Google Summer of Code (GSoC) students for 2012. We had a very stiff competition this year. I know this because I read (and in most cases re-read) proposals for two weeks trying to narrow down the field. Make no mistake - the proposals for Opticks this year were truly top-notch. I would have liked to accept more, but we were limited to just 3 slots. In the end, the following proposals were accepted:</p>
<ul>
	<li><a class="external-link" href="http://www.google-melange.com/gsoc/project/google/gsoc2012/handreak/5001">Opticks - Basic SAR Processing Tools: Geocoding and stereo measurement (Andrea Nascetti)</a></li>
	<li><a class="external-link" href="http://www.google-melange.com/gsoc/project/google/gsoc2012/himsin/12001">Spectral Algorithm Development for Opticks (Himanshu Singh)</a></li>
	<li><a class="external-link" href="http://www.google-melange.com/gsoc/project/google/gsoc2012/mohitkharb/10001">Object Based Image Analysis Tools for Opticks (Mohit Kumar)</a></li>
</ul>


<p>I would like to thank all of the students who submitted proposals for Opticks and would like to extend an invitation to them to contribute to Opticks outside GSoC. I have been in touch with multiple students who were not selected, and all but one of them have agreed to contribute something to Opticks from their proposals. The one who did not agree to become a contributor was accepted by another GSoC organization, so congratulations to him, and we hope to see him again at the end of the summer.</p>

<p>I would also like to thank our mentors and co-mentors, without whom GSoC participation would not be possible: Trevor Clarke, Nathan Jennings, Tishampati Dhar, and Dr. Charles Wamsley.</p>

<p>And, of course, a special thanks to <a class="external-link" href="http://osgeo.org">OSGeo</a> and especially Anne Ghisla (aghisla) to letting Opticks participate under their organization and putting up with all of my questions.</p>

<h3><a name="GoogleSummerofCode2012andOpticks4.9.0rc1-Extras1.6.0rc1-Opticks4.9.0rc1%2FExtras1.6.0rc1" />Opticks 4.9.0rc1/Extras 1.6.0rc1</h3>
<p>I just finished the release of Opticks 4.9.0rc1 and IDL/Python/Spectral 1.6.0rc1. As I was finishing the release, I was informed that <a href="https://issues.opticks.org/jira/browse/OPTICKS-1386">OPTICKS-1386</a> was found and would likely cause another release candidate (rc) to be created. Please take the time to download the rc's so we can find and fix any other issues in them to make this release as stable as possible.</p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~dadkins/2012/04/24/Google+Summer+of+Code+2012+and+Opticks+4.9.0rc1-Extras+1.6.0rc1">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/EUwP0r6UUGg" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~dadkins/2012/04/24/Google+Summer+of+Code+2012+and+Opticks+4.9.0rc1-Extras+1.6.0rc1</feedburner:origLink></entry><entry><title type="text">Trevor Clarke Blog: FOSS4G-NA 2012 and a call for help</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/XnbqmnuZz_Y/FOSS4G-NA+2012+and+a+call+for+help" /><author><name>Trevor Clarke</name></author><updated>2012-04-13T10:52:10-07:00</updated><id>tag:opticks.org,2009:blogpost-7307270-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~tclarke">Trevor Clarke</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <p>This past week I attended the <a class="external-link" href="http://foss4g-na.org">FOSS4G North America conference</a> in Washington DC. Overall it was a great conference. I got to meet some IRC regulars including hobu, nhv, and epifanio. We had some great discussions about open source LIDAR and how Opticks plans to fit into the newly developing LIDAR ecosystem. There were many interesting presentations on new and old projects. I'm particularly excited about the new versions of <a class="external-link" href="http://www.postgresql.org">PostgreSQL</a> and <a class="external-link" href="http://postgis.refractions.net">PostGIS</a> as well as <a class="external-link" href="https://github.com/azavea/geotrellis">GeoTrellis</a>, a new tool to automatically parallelize and distribute raster computations and attach a nice RESTful interface to the algorithms.</p>

<p><a class="external-link" href="http://www.linkedin.com/in/risacher">Daniel Risacher</a> gave a great talk on the future of open source in the US DoD and intelligence community. I'm excited about his efforts to establish a group similar to the Apache Foundation tasked with assisting US government and IC projects with their open source dreams. This will be a HUGE step forward for the DoD and allowing for higher quality software for a much lower cost of ownership.</p>

<p>I've also decided that the GIS community really doesn't get remote sensing (especially hyperspectral) since most of the products out there (great as they are at what they do) treat processing and MASINT as an after thought. I see two major problems:</p>
<ol>
	<li>Everything is in geo space. There isn't much processing that happens in sensor space. Instead, rasters are often re-projected to geo space and processed which is fine for presentation needs but is a problem for a lot of statistical processes and other tasks often performed by remote sensing folks. Remeber, <b>process in sensor space and transform your products for display</b>.</li>
	<li>Most of the time, tools assume rasters are single band, RGB color, or occasionally 4-band MSI. If you want to run spectral processes on hundreds of bands this results in unusable performance. Many of the tools abstract away the idea of bands and just stack multiple 2-D images when working with multiband data so they are not easily adoptable to spectral workflows.</li>
</ol>


<p>Let me be clear that I'm not trying to put down any projects, it just that GIS goals are often different so the tools don't always translate as well to remote sensing and it can often feel like we are the ugly ducklings of the imagery world. I'd love to use some of these great processing tools like PostGIS and GeoTrellis and I'm always watching to see if the will handle my workflows or can be easily adapted to handle 3-D cubes and alternate interleaves but I'm getting a bit frustrated. While Opticks is great at handling this as a rich desktop app and does have a batch mode, it's really not an ideal platform for webservices or distributed processing. Therefore, I may need to work on a new framework similar to GeoTrellis, etc. for MASINT processing.</p>

<p>I'd love to hear your thoughts, especially if you work on one of the FOSS4G projects that handles server-side processing, distributed processing, or in-database processing of raster data. (I mentioned 2 here but they are certainly not the only ones). I'd love to extend one of the existing projects if there's a fit but I don't have time to explore everything out there.</p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~tclarke/2012/04/13/FOSS4G-NA+2012+and+a+call+for+help">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/XnbqmnuZz_Y" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~tclarke/2012/04/13/FOSS4G-NA+2012+and+a+call+for+help</feedburner:origLink></entry><entry><title type="text">Trevor Clarke Blog: HTTP proxies and the Opticks Dependency downloader</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/WJcVj4faJLU/HTTP+proxies+and+the+Opticks+Dependency+downloader" /><author><name>Trevor Clarke</name></author><updated>2012-04-05T07:13:34-07:00</updated><id>tag:opticks.org,2009:blogpost-6653188-2</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>edited</b> by
                    <a href="http://opticks.org/confluence/display/~tclarke">Trevor Clarke</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <p>If you are experiencing problems downloading dependencies and require the use of an HTTP proxy the following should help you resolve the problem. The problem occurs when using the dependencies/retrieve-dependencies scripts. Try the following in the Dependencies directory:</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>
<p>This should show a bunch of settings. At the bottom you should see something like:</p>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>-------------------------------------------
 Proxy information
-------------------------------------------
Java1.5+ proxy settings:
Direct connection
</pre>
</div></div>
<p>Now, try setting your proxy settings:</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>
<p>You should see:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>-------------------------------------------
 Proxy information
-------------------------------------------
http.proxyHost = "proxyhostname"
http.proxyPort = "3128"
http.proxyUser = "username"
http.proxyPassword = "password"
Java1.5+ proxy settings:
HTTP @ proxyhostname:3128 proxyhostname:3128 [unresolved]
</pre>
</div></div>
<p>Except you shouldn't see the ﻿"unresolved" (I used a fake proxy name for my test). If you don't need a username and password, just omit those settings.</p>

<p>Finally, you can grab the dependencies. Just remove the <tt>-dianostics</tt> option and replace it with <tt>all</tt> to simulate <tt>retrieve-dependencies</tt> or the appropriate <tt>dependencies</tt> option. For example, grab just win32 dependencies:</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~tclarke/2012/04/05/HTTP+proxies+and+the+Opticks+Dependency+downloader">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/WJcVj4faJLU" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~tclarke/2012/04/05/HTTP+proxies+and+the+Opticks+Dependency+downloader</feedburner:origLink></entry><entry><title type="text">Trevor Clarke Blog: RAW photo importer</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/yE61lmf3NKs/RAW+photo+importer" /><author><name>Trevor Clarke</name></author><updated>2012-04-02T06:58:56-07:00</updated><id>tag:opticks.org,2009:blogpost-6653157-2</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>edited</b> by
                    <a href="http://opticks.org/confluence/display/~tclarke">Trevor Clarke</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <p>I've pushed a new importer out to COAN which loads a variety of RAW photo formats using libraw. I haven't got the build.py script working yet so I haven't created an AEB but it should build on at least win32 and win64 (Linux should work but I haven't tested it yet). There are quite a few limitations including:</p>

<ul>
	<li>Does not support on-disk processing</li>
	<li>Does not load all the metadata (especially white balance and similar information)</li>
	<li>Does not post process the data at all (you'll get a Bayer image)</li>
</ul>


<p>Feel free to try it out and send me feedback, or better yet, branch it on github, make some changes/additions, and send a pull request. I'll be happy to take any changes provided they work well and don't decrease functionality.</p>

<p>You can access the source code <a class="external-link" href="https://github.com/tclarke/coan/tree/master/RAWPhoto">here</a>.</p>

<p>There is an <a href="http://opticks.org/confluence/display/opticksExt/RAW+Photography" title="RAW Photography">AEB for Opticks 4.8.x </a>(Windows and Linux) available.</p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~tclarke/2012/03/30/RAW+photo+importer">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/yE61lmf3NKs" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~tclarke/2012/03/30/RAW+photo+importer</feedburner:origLink></entry><entry><title type="text">Trevor Clarke Blog: RAW photo importer</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/yE61lmf3NKs/RAW+photo+importer" /><author><name>Trevor Clarke</name></author><updated>2012-03-30T09:46:48-07:00</updated><id>tag:opticks.org,2009:blogpost-6653157-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~tclarke">Trevor Clarke</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <p>I've pushed a new importer out to COAN which loads a variety of RAW photo formats using libraw. I haven't got the build.py script working yet so I haven't created an AEB but it should build on at least win32 and win64 (Linux should work but I haven't tested it yet). There are quite a few limitations including:</p>

<ul>
	<li>Does not support on-disk processing</li>
	<li>Does not load all the metadata (especially white balance and similar information)</li>
	<li>Does not post process the data at all (you'll get a Bayer image)</li>
</ul>


<p>Feel free to try it out and send me feedback, or better yet, branch it on github, make some changes/additions, and send a pull request. I'll be happy to take any changes provided they work well and don't decrease functionality.</p>

<p>You can access the source code <a class="external-link" href="https://github.com/tclarke/coan/tree/master/RAWPhoto">here</a>.</p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~tclarke/2012/03/30/RAW+photo+importer">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/yE61lmf3NKs" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~tclarke/2012/03/30/RAW+photo+importer</feedburner:origLink></entry><entry><title type="text">Trevor Clarke Blog: Dependencies Mirroring Without Ivy</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/-q2kzPZajBE/Dependencies+Mirroring+Without+Ivy" /><author><name>Trevor Clarke</name></author><updated>2012-03-28T06:29:08-07:00</updated><id>tag:opticks.org,2009:blogpost-6653152-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~tclarke">Trevor Clarke</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <p>Some users have had trouble downloading the dependencies if they are behind an HTTP proxy. User himsin has created a bash script which uses wget to download the required dependencies and mirrors then to a local directory for use with the dependency system. This script requires bash and wget. If you are on Windows you can install mingw32 or cygwin to obtain these tools.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>dependencies_mirror.sh</b></div><div class="codeContent panelContent">

</div></div>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~tclarke/2012/03/28/Dependencies+Mirroring+Without+Ivy">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/-q2kzPZajBE" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~tclarke/2012/03/28/Dependencies+Mirroring+Without+Ivy</feedburner:origLink></entry><entry><title type="text">Dustan Adkins Blog: Hard at Work</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/lJSCKuLVGjE/Hard+at+Work" /><author><name>Dustan Adkins</name></author><updated>2012-03-27T08:04:48-07:00</updated><id>tag:opticks.org,2009:blogpost-6653144-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~dadkins">Dustan Adkins</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <h1><a name="HardatWork-Excuses%2Cexcuses..." />Excuses, excuses...</h1>
<p>I have not added a new blog post in quite some time. I apologize for that and want to make sure everybody knows that I have not stopped. I have just been busy. I just now posted a draft of the <a href="http://opticks.org/confluence/display/opticks/Opticks+Governance+Policy" title="Opticks Governance Policy">Opticks Governance Policy</a>, so you can see what I have been working on the last couple of weeks. Oh, and <a class="external-link" href="http://www.google-melange.com/gsoc/homepage/google/gsoc2012">Google Summer of Code</a> (GSoC) – Anne from OSGeo has been awesome to work with and has helped OSGeo (and, by proxy, Opticks) get into GSoC again this year. I am looking forward to mentoring a great summer of code. For interested parties, the official OSGeo GSoC page is <a class="external-link" href="http://wiki.osgeo.org/wiki/Google_Summer_of_Code_2012">here</a>, and the Opticks project ideas page is <a href="http://opticks.org/confluence/display/opticksDev/Google+Summer+of+Code" title="Google Summer of Code">here</a>. We are also welcoming co-mentors – please message the <a href="http://opticks.org/confluence/display/opticks/Mailing+Lists" title="Mailing Lists">Mailing Lists</a> if you are interested. Finally, I have been acting on some suggestions from the community by updating the <a class="external-link" href="http://en.wikipedia.org/wiki/Opticks_%28software%29">Opticks page on Wikipedia</a>. </p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~dadkins/2012/03/27/Hard+at+Work">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/lJSCKuLVGjE" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~dadkins/2012/03/27/Hard+at+Work</feedburner:origLink></entry><entry><title type="text">Dustan Adkins Blog: Opticks 4.8.0 - Change Your Default AOI Selection Tool</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/tBNZxNxdPN4/Opticks+4.8.0+-+Change+Your+Default+AOI+Selection+Tool" /><author><name>Dustan Adkins</name></author><updated>2012-02-27T08:03:43-08:00</updated><id>tag:opticks.org,2009:blogpost-6652967-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~dadkins">Dustan Adkins</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <h1><a name="Opticks4.8.0-ChangeYourDefaultAOISelectionTool-GhostsofMyPast" />Ghosts of My Past</h1>
<p>I have a confession to make. Almost every time I make an AOI in Opticks, I make the same mistake. I click and drag to try to draw a rectangle and get a single pixel staring back at me mockingly. With a new option in Opticks 4.8.0 I now have an ally in my battle against this little dot. Opticks now allows me to change the default AOI pixel selection tool. So long, little dot! Hello nice, friendly rectangle! Here is where to find the option:</p>

<p><span class="image-wrap" style="display: block; text-align: center;"><img src="http://opticks.org/confluence/download/attachments/6652844/AoiPixelSelection_1.jpg?version=1&amp;modificationDate=1327673890679" style="border: 0px solid black;" /></span></p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~dadkins/2012/02/27/Opticks+4.8.0+-+Change+Your+Default+AOI+Selection+Tool">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/tBNZxNxdPN4" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~dadkins/2012/02/27/Opticks+4.8.0+-+Change+Your+Default+AOI+Selection+Tool</feedburner:origLink></entry><entry><title type="text">Stuart Miller Blog: LiDAR - An expanding field to be excited about</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/zwHSXiodoXE/LiDAR+-+An+expanding+field+to+be+excited+about" /><author><name>Stuart Miller</name></author><updated>2012-02-22T07:33:43-08:00</updated><id>tag:opticks.org,2009:blogpost-6652735-5</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>edited</b> by
                    <a href="http://opticks.org/confluence/display/~sbmiller">Stuart Miller</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <p>A new imaging field that is really growing in popularity right now is LiDAR/LaDAR.  These funky looking acronyms stand either for Light Detection And Ranging or Laser Detection And Ranging, depending on the technique used to collect the data.  LiDAR/LaDAR work similarly to radar, just with light instead of radio waves.  A typical collection involves shining a light on a surface and then checking the return time back to the sensor in order to determine the surface's distance.  By collecting a large volume of points - frequently numbering in the millions - a point cloud can be generated that can be used to accurately visualize the surface in 3D.</p>

<div align="center" class="myclass"><p><span class="image-wrap" style="display: block; text-align: center;"><img src="http://farm8.staticflickr.com/7142/6604642639_e209ca05dd_b.jpg" style="border: 1px solid black;" width="500" /></span><br class="atl-forced-newline" />
LiDAR Visualization of the US Capitol Building (<a class="external-link" href="http://www.flickr.com/photos/72128514@N04/6604642639/sizes/l/in/photostream/">source</a>)</p></div>


<p>The most obvious application for LiDAR collections is in surface reconstruction.  LiDAR sensors can easily be placed on aerial vehicles to collect data over large swaths of land, and once the data has been collected the points can be displayed in their raw format or processed to reconstruct a standard 3D mesh, which can be exported and used in various 3D rendering engines.  The raw point cloud can also be processed using a variety of algorithms to do interesting things, such as virtually removing trees and man-made objects in order to better analyze the bare earth.  This allows for a great amount of insight into the topological composition of areas without having to physically destroy anything.  One such algorithm is outlined <a class="external-link" href="http://pugetsoundlidar.ess.washington.edu/vdf4.pdf">here</a> (PDF link), and shows the impressive results that an analyst can get by using very basic processing techniques on the data.</p>

<p>Interest in LiDAR is expanding beyond GIS applications, however.  A major advancement in the accessibility of the technology came with the release of the Microsoft Kinect in 2010, which has a relatively low-resolution LiDAR sensor built in to detect the spatial position of users in front of the camera.  Since the device operates over USB, developers were able to create a driver that allowed the Kinect to be used on a PC, giving rise to a large community dedicated to using the technology in new and interesting ways.  One academic group in Germany was able to create a simple face scanner that uses the spatial positioning data from the LiDAR sensor to create all of the geometry, as well as getting texture data from the normal RGB camera.  You can see their results in this <a class="external-link" href="http://www.youtube.com/watch?v=llNSQ2u2rT4">video</a>.  Due to the explosive popularity of Kinect hacking, Microsoft is planning on releasing a version of the device specifically for PCs sometime in 2012.</p>

<div align="center" class="myclass"><p><span class="image-wrap" style="display: block; text-align: center;"><img src="http://opticks.org/confluence/download/attachments/6652735/houseofcards.png?version=1&amp;modificationDate=1326462430778" style="border: 1px solid black;" /></span><br class="atl-forced-newline" />
Thom Yorke's big goofy head... in 3D</p></div>


<p>Point clouds have also gained popularity with artists due to the unique visualizations that can be produced.  In late 2011, GeoDigital hosted a competition called <a class="external-link" href="http://geodigital.com/template_b.cfm?id=160&amp;action=published">LiDAR as Art</a> where users could submit artistic LiDAR renderings, with the author of the best photo winning an iPad.  You can see the submissions on their <a class="external-link" href="http://www.flickr.com/photos/72128514@N04/6635975717/">Flickr stream</a>.  Additionally, some major music videos have been released recently that relied entirely on LiDAR for their visualizations: Linkin Park's <a class="external-link" href="http://www.youtube.com/watch?v=5qF_qbaWt3Q">"Waiting For The End"</a> and Radiohead's <a class="external-link" href="http://www.youtube.com/watch?v=8nTFjVm9sTQ">"House Of Cards."</a>  Radiohead also released all of the data used in composing the "House of Cards" video freely on a <a class="external-link" href="http://code.google.com/creative/radiohead/">Google Code page</a>, allowing those interested in the technology to explore the full data set and understand how the video was created. </p><div align="center" class="myclass"> <span class="image-wrap"><img src="http://opticks.org/confluence/download/attachments/6652735/optickslidar.png?version=1&amp;modificationDate=1326462846623" style="border: 1px solid black;" /></span><br class="atl-forced-newline" />
LiDAR in Opticks prototype</div>
<p />


<p>We on the Opticks team are pretty excited about this technology, and have done some internal prototypes to see how we can integrate LiDAR support into our platform.  Much of our work is very early, but we're hoping as time and funding become available we can expand further and eventually have a release with full support for common LiDAR formats, particularly LAS.  If you are interested in following the development of our LiDAR support, you can check the <a class="external-link" href="https://issues.ballforge.net/jira/browse/OPTICKS-1109">open issue</a> on our bug tracker where we will post updates as they occur.  We also have some public builds of our prototypes available for download on <a class="external-link" href="http://opticks.org/hudson/job/Lidar-Daily-Windows/">Hudson</a>.</p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~sbmiller/2012/01/12/LiDAR+-+An+expanding+field+to+be+excited+about">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/zwHSXiodoXE" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~sbmiller/2012/01/12/LiDAR+-+An+expanding+field+to+be+excited+about</feedburner:origLink></entry><entry><title type="text">Dustan Adkins Blog: Opticks Python Extension - Taming the Snake</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/uj6sYaih9LA/Opticks+Python+Extension+-+Taming+the+Snake" /><author><name>Dustan Adkins</name></author><updated>2012-02-13T05:46:38-08:00</updated><id>tag:opticks.org,2009:blogpost-6652935-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~dadkins">Dustan Adkins</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <h1><a name="OpticksPythonExtension-TamingtheSnake-Foreword" />Foreword</h1>
<p>Before anyone <a class="external-link" href="http://en.wikipedia.org/wiki/Flaming_%28Internet%29">flames</a> me, I am <a class="external-link" href="http://www.python.org/doc/essays/foreword">well aware</a> that the <a class="external-link" href="http://python.org">Python</a> programming language is named after <a class="external-link" href="http://en.wikipedia.org/wiki/Monty_Python">Monty Python</a> and not <a class="external-link" href="http://en.wikipedia.org/wiki/Pythonidae">the snake</a>.</p>

<p>But this is becoming far too silly; I should get on with it!</p>


<h2><a name="OpticksPythonExtension-TamingtheSnake-PreparingtoStrike%28or%3ABeforeYouBegin%29" />Preparing to Strike (or: Before You Begin)</h2>
<p>First things first. You will need to have a distribution of <a class="external-link" href="http://python.org">Python</a> installed on your machine. Oh, and make sure to get a version supported by Opticks. If you are not sure what to get, check for compatibility <a class="external-link" href="http://opticks.org/confluence/display/opticksExt/Python+Scripting">here</a>. As of the time of this writing, only Python 2.5 and Python 2.6 are supported, and only Python 2.6 supports 64-bit.</p>

<p>Then download and install <a href="http://opticks.org/confluence/display/opticks/Download" title="Download">Opticks</a> and the <a class="external-link" href="http://opticks.org/confluence/display/opticksExt/Python+Scripting">Python Scripting Extension</a>.</p>

<p><a href="http://opticks.org/confluence/display/opticks/Download" title="Download"><span class="image-wrap"><img alt="Download Opticks" src="http://opticks.org/confluence/download/attachments/1572921/DownloadOpticksButton.png?version=2&amp;modificationDate=1238069462313" style="border: 0px solid black;" /></span></a> <a href="http://opticks.org/confluence/display/opticksExt"><span class="image-wrap"><img alt="Download Extensions" src="http://opticks.org/confluence/download/attachments/1572921/DownloadExtensionsButton.png?version=1&amp;modificationDate=1238069472703" style="border: 0px solid black;" /></span></a></p>

<h2><a name="OpticksPythonExtension-TamingtheSnake-TamingtheSnake%28or%3AInstallingandRunningPython%29" />Taming the Snake (or: Installing and Running Python)</h2>
<p>If you have not already done so, install the Python extension. Depending on where Opticks is installed and what OS you are using, you will need to run Opticks as administrator (or root). Some users will be able to simply drag and drop the AEB file onto the Opticks application. If this does not work, then you will need to use the Extensions dialog. Detailed instructions for installing extensions are available <a href="http://opticks.org/confluence/display/opticksExt/How+To+Install+an+Extension" title="How To Install an Extension">here</a>. Make sure to restart Opticks after installing the extension.</p>

<p>And now for something completely different. Once Python is installed, you should be able to see it in the Opticks Scripting Window. Open the Scripting Window by selecting "Scripting Window" from the "Tools" menu. Now you can enter commands. Here is an example using some <a class="external-link" href="http://wiki.python.org/moin/Powerful%20Python%20One-Liners">Powerful Python One-Liners</a> which amused me. Click on the image for a larger view:</p>

<p><span class="image-wrap" style="display: block; text-align: center;"><a class="confluence-thumbnail-link 901x790" href="http://opticks.org/confluence/download/attachments/6652844/TamingSnake_1.jpg"><img src="http://opticks.org/confluence/download/thumbnails/6652844/TamingSnake_1.jpg" style="border: 0px solid black;" /></a></span></p>

<h2><a name="OpticksPythonExtension-TamingtheSnake-WrappedupinCoils%28or%3ATroubleshooting%29" />Wrapped up in Coils (or: Troubleshooting)</h2>
<p>On certain machines (I wish I could invest the time to narrow this down, but, alas, I cannot), Python will not show up correctly in Opticks. This can usually be attributed to Opticks not being able to find Python for some nebulous reason. Rather than starting some sort of Spanish Inquisition into the problem, I will show you two simple techniques for fixing it.</p>
<ul>
	<li>Change the "Python Home Location" to point to the directory where Python is installed. This value may also be stored in the PYTHON_HOME environment variable. This setting is available from the Options dialog. Click on the image for a larger view:</li>
</ul>


<p><span class="image-wrap" style="display: block; text-align: center;"><a class="confluence-thumbnail-link 757x704" href="http://opticks.org/confluence/download/attachments/6652844/TamingSnake_2.jpg"><img src="http://opticks.org/confluence/download/thumbnails/6652844/TamingSnake_2.jpg" style="border: 0px solid black;" /></a></span></p>

<ul>
	<li>If that still does not work, try adding Python to your <a class="external-link" href="http://en.wikipedia.org/wiki/PATH_%28variable%29">PATH environment variable</a>. If you do not know how to do this, see the following section.</li>
</ul>


<h2><a name="OpticksPythonExtension-TamingtheSnake-HowtoRecognizeDifferentTypesofTreesFromQuiteaLongWayAway%28or%3AEnvironmentVariables%29" />How to Recognize Different Types of Trees From Quite a Long Way Away (or: Environment Variables)</h2>
<p>An <a class="external-link" href="http://en.wikipedia.org/wiki/Environment_variable">environment variable</a> is really no more than a hidden setting on your computer. Do not be afraid of them, although I should warn you that messing them up can have consequences (up to and including needing to reinstall the operating system). In this example, I am going to show you how to modify an environment variable called <a class="external-link" href="http://en.wikipedia.org/wiki/PATH_%28variable%29">PATH</a>. In simple terms, the PATH is essentially the master list of where your computer should go to find programs. For the Python Scripting Extension, we need to make sure that the Python <a class="external-link" href="http://en.wikipedia.org/wiki/Shared_library#Shared_libraries">shared library</a> can be located. [Side note: Many people incorrectly refer to a shared library as a DLL. The truth is: <a class="external-link" href="http://en.wikipedia.org/wiki/Dynamic-link_library">a DLL is a shared library, and a shared library is not necessarily a DLL</a>. For the purposes of this article, however, they are close enough to be considered equivalent. Although they a bit different. A bit...]</p>

<p>Now that we understand what the PATH does, how can you change it? This depends on your operating system. This question has been answered <a class="external-link" href="http://java.com/en/download/help/path.xml">many times</a>. One gotcha is that in Microsoft Vista and 7, users without administrator privileges may have trouble changing their PATH. This question has also been answered <a class="external-link" href="http://support.microsoft.com/kb/931715">here</a>. It took me awhile to find the "Change my environment variables" link referenced from that article, so here is a screenshot pointing out its location:</p>

<p><span class="image-wrap" style="display: block; text-align: center;"><img src="http://opticks.org/confluence/download/attachments/6652844/TamingSnake_3.jpg?version=1&amp;modificationDate=1328815658844" style="border: 0px solid black;" /></span></p>

<p>Change your PATH to reference the directory containing the Python shared library. On Windows, this is usually C:\Python25 or C:\Python26. Some distributions of Python even throw it into C:\Windows\System32 or another system folder. Once you have changed your PATH, you should be able to restart Opticks and try again. If you continue to have problems, please let us know via our <a href="http://opticks.org/confluence/display/opticks/Mailing+Lists" title="Mailing Lists">Mailing Lists</a> or <a href="http://opticks.org/confluence/display/opticksChat">real-time chat</a>. There are more advanced steps which can be followed, however, they are outside the scope of this article.</p>


<h3><a name="OpticksPythonExtension-TamingtheSnake-IamHereforanArgument" />I am Here for an Argument</h3>
<p>Other than the title of this section, this article contains 5 obvious (or not-so-obvious) references to Monty Python. If you think you have found them all, let us know on <a class="external-link" href="http://twitter.com/opticksProject">Twitter</a> or <a class="external-link" href="https://www.facebook.com/opticksproject?sk=wall&amp;filter=1">Facebook</a>!</p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~dadkins/2012/02/13/Opticks+Python+Extension+-+Taming+the+Snake">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/uj6sYaih9LA" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~dadkins/2012/02/13/Opticks+Python+Extension+-+Taming+the+Snake</feedburner:origLink></entry><entry><title type="text">Trevor Clarke Blog: Using Python and OpenCV to calculate and draw edge contours</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/FOa4ukxk80s/Using+Python+and+OpenCV+to+calculate+and+draw+edge+contours" /><author><name>Trevor Clarke</name></author><updated>2012-02-09T09:11:36-08:00</updated><id>tag:opticks.org,2009:blogpost-6652918-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~tclarke">Trevor Clarke</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <h2><a name="UsingPythonandOpenCVtocalculateanddrawedgecontours-Prerequisites%3A" />Prerequisites:</h2>

<p>This tutorial uses Opticks 4.8.0 with the Python extension 1.5.0 with Python 2.6. OpenCV 2.2 with the OpenCV Python AEB are also required. This tutorial may need to be adapted for configurations other than this.</p>

<p>It is assumed that the user has some knowledge of Python, the Opticks Python scripting engine, and basic OpenCV. Basic tasks such as accessing image data using Python will not be covered in detail nor will there be in depth explanation of the OpenCV functions used.</p>

<p>This tutorial uses the Bushehr Quickbird image from June 6, 2002 which can be obtained from the <a href="http://opticks.org/confluence/display/opticks/Sample+Data" title="Sample Data">Sample Data</a> page.</p>

<h2><a name="UsingPythonandOpenCVtocalculateanddrawedgecontours-Introduction%3A" />Introduction:</h2>

<p>This tutorial will demonstrate:</p>
<ul>
	<li>Use of the Opticks Python scripting extension with OpenCV</li>
	<li>Using OpenCV GUIs from Opticks</li>
	<li>Generating Opticks annotations using annotation XML files</li>
	<li>Importing data with the Import Data Set ﻿plugin</li>
</ul>


<p>The Python source code can be downloaded here: <a href="http://opticks.org/confluence/download/attachments/6652918/contours.py?version=1&amp;modificationDate=1328807496238">contours.py</a> You can place this in a location where is can be imported into the Python scripting window or you can type the text directly into the scripting window.</p>

<h2><a name="UsingPythonandOpenCVtocalculateanddrawedgecontours-TheAlgorithm" />The Algorithm</h2>

<p>The basic flow for the algorithm will first get the image data from Opticks, convert it into an 8-bit grayscale image, use the Canny algorithm to interactively find edges, use a contour tracing algorithm to vectorize the edges, and save contour information to an Opticks <tt>.ano</tt> file. Let's look at the code.</p>

<p /><div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>This first section accesses the primary image data from the active view. If the data is not already unsigned 8-bit, it is rescaled. This is a requirement for some of the OpenCV functions. The last few lines use the <tt>CvtColor</tt> function to convert from RGB to grayscale.<p />

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<p>The next section of the main function calls the <tt>interactive_canny</tt> function. This function will return <tt>None</tt> if the user presses the <b>q</b> key. We'll go over this function now.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<p><tt>interactive_canny</tt> demonstrates how to use the OpenCV HighGUI functions to quickly create an interactive GUI to choose Canny thresholds. This iteratively calculates the Canny function and displays the results in a window. Since the <tt>imshow</tt> function displays an image at full resolution, the <tt>rsize</tt> function will scale the data if it is large. Two sliders are added to the window to allow the user to adjust the low and high thresholds and see the results. Pressing the <b>q</b> key will cancel the script and pressing the <b>enter</b> key will continue using the selected thresholds.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<p>This next section in the main function using the OpenCV <tt>FindContours</tt> function to trace the edges. The default parameters create a flat (non-hierarchical) list of all the contours using simple chain codes which list only vertices and no intermediate points on the contours.</p>

<p>Once the contours are calculated we would like to create an annotation layer to display them. In Opticks 4.8.0, there are no functions available to create and manipulate annotation layers and AOIs can only be manipulated as bitmasks, not vectors. In order to work around this deficiency, we create a <tt>.ano</tt> file which is the Opticks native annotation file format. We will save this to the <tt>contours.ano</tt> file in the Opticks temp directory. The <tt>save_anno</tt> function is shown below.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<p>An <tt>.ano</tt> file is an XML file and is not too difficult to create. The first section writes out some boilerplate XML indicating that this is an annotation element. The important parts of this header are the <tt>name</tt> attributes in the <tt>AnnotationElement</tt> and <tt>DataDescriptor</tt> XML tags. These should be the same value and indicate the name of the annotation layer. In this case, we are calling it <em>Contours</em>.</p>

<p>The <tt>while</tt> loop is used to iterate through all the contours in the list of contours. Near the end of the loop, the <tt>c = c.h_next()</tt> call will move to the next contour. Since we created a flat list, the <tt>c.v_next()</tt> call will always return <tt>None</tt> but is used to move down in a hierarchical contour list. We write out some information for the contour. The <tt>Graphic</tt> tag has a could of interesting attributes and children. The <tt>name</tt> attribute indicates the name of each contour; in this case we are just numbering them. The <tt>type</tt> attribute is the shape used to draw the contour; in this case, a closed polygon. (<tt>Polyline</tt> would have been another option if we didn't want a closed shape) The <tt>LineColor</tt>, {{FillStyle}, and other child elements determine how the contours will be drawn. We will use unfilled polygons with red borders.</p>

<p>The <tt>for</tt> loop iterates through all the vertices in the contour and writes out the pixel location of each vertex. The <tt>paths</tt> element is used to create complex hierarchical polygons. If we calculated hierarchical contours we could display them using multiple paths. For now, we just use a single path starting at the first pixel.</p>

<p>The end of the function writes the XML footer for the <tt>.ano</tt> file. There's also a check so we won't write out too many contours since more than a couple of thousand in a file can take a long time to load and display from a <tt>.ano</tt> file. We could write multiple files in this case but I'll leave that as an exercise to the reader.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<p>This last piece of code creates an instance of the <tt>Import Data Set</tt> plug-in and points it to the <tt>.ano</tt> file we just created. This is used to import the result into the active window.</p>

<h2><a name="UsingPythonandOpenCVtocalculateanddrawedgecontours-RunningtheProgram" />Running the Program</h2>

<p>The easiest way to run the program is to save the <tt>.py</tt> file where it can be imported into Opticks. You can then load an image and type:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<p>Here are some screenshots of the Bushehr data set. You can see the edge image with the adjusted thresholds and the resulting contours in Opticks.</p>

<p><span class="image-wrap"><a class="confluence-thumbnail-link 1004x1026" href="http://opticks.org/confluence/download/attachments/6652918/canny_edges.jpg"><img src="http://opticks.org/confluence/download/thumbnails/6652918/canny_edges.jpg" style="border: 1px solid black;" /></a></span> <span class="image-wrap"><a class="confluence-thumbnail-link 1252x812" href="http://opticks.org/confluence/download/attachments/6652918/contours.jpg"><img src="http://opticks.org/confluence/download/thumbnails/6652918/contours.jpg" style="border: 1px solid black;" /></a></span></p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~tclarke/2012/02/09/Using+Python+and+OpenCV+to+calculate+and+draw+edge+contours">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/FOa4ukxk80s" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~tclarke/2012/02/09/Using+Python+and+OpenCV+to+calculate+and+draw+edge+contours</feedburner:origLink></entry><entry><title type="text">Dustan Adkins Blog: Keep it Brief (Very Brief)</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/AGI3YxjMzaQ/Keep+it+Brief+%28Very+Brief%29" /><author><name>Dustan Adkins</name></author><updated>2012-02-03T06:24:51-08:00</updated><id>tag:opticks.org,2009:blogpost-6652899-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~dadkins">Dustan Adkins</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <h1><a name="KeepitBrief%28VeryBrief%29-Intro" />Intro</h1>
<p>Nothing can be better than something. Especially in batch mode. Especially when calling OpticksBatch a lot. And especially when logging every line of output to a file. Opticks has provided a "brief" command-line argument to OpticksBatch for quite some time. But it was still too much. Users wanted less. So we gave it to them. In Opticks 4.8.0, you can now specify "verybrief". And it is very, very brief. You only get startup, shutdown, warning, and error messages. Here is a screenshot (click on it for a larger image):</p>

<p><span class="image-wrap" style="display: block; text-align: center;"><a class="confluence-thumbnail-link 1537x961" href="http://opticks.org/confluence/download/attachments/6652844/VeryBrief.jpg"><img src="http://opticks.org/confluence/download/thumbnails/6652844/VeryBrief.jpg" style="border: 0px solid black;" /></a></span></p>


<p>If you are curious about the software used in that screenshot, I am using a free and open source program called <a class="external-link" href="http://sourceforge.net/projects/console/">Console</a>. I use it primarily because it has tabs. I like tabs. And I like open source software. If it's free, it's for me!</p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~dadkins/2012/02/03/Keep+it+Brief+%28Very+Brief%29">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/AGI3YxjMzaQ" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~dadkins/2012/02/03/Keep+it+Brief+%28Very+Brief%29</feedburner:origLink></entry><entry><title type="text">Dustan Adkins Blog: Easy Image Linking with Opticks 4.8.0</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/Fe-jtSxL1dw/Easy+Image+Linking+with+Opticks+4.8.0" /><author><name>Dustan Adkins</name></author><updated>2012-01-30T07:11:55-08:00</updated><id>tag:opticks.org,2009:blogpost-6652876-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~dadkins">Dustan Adkins</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <h1><a name="EasyImageLinkingwithOpticks4.8.0-Introduction" />Introduction</h1>

<p>Opticks has, for a long time, had a feature known as Image Linking (or just Linking). Linking lets the user use either pixel or geographic coordinates to keep multiple windows in lock-step while zooming and panning, which can come in pretty handy. This feature is especially useful for looking at the same area over time, images covering the same area from different sensors, or comparing processed data to raw data.</p>

<p>In this example, I am going to compare the old (and somewhat tedious) method of linking with the new and much improved method available in 4.8.0. I will be using data from Landsat7 ETM+ which is available from our sample data downloads page <a class="external-link" href="http://opticks.org/confluence/display/opticks/Sample+Data#SampleData-L723SEP99">here</a>. Kudos and thanks go out to both the Landsat7 ETM+ team and USGS for providing us with this great imagery.</p>

<h2><a name="EasyImageLinkingwithOpticks4.8.0-BeforeYouBegin" />Before You Begin</h2>

<p>Download and install <a href="http://opticks.org/confluence/display/opticks/Download" title="Download">Opticks</a>, and download the <a class="external-link" href="http://opticks.org/confluence/display/opticks/Sample+Data#SampleData-L723SEP99">sample data</a> and extract the archive. I used 7-zip for extraction, which is available <a class="external-link" href="http://www.7-zip.org/">here</a>.</p>

<p><a href="http://opticks.org/confluence/display/opticks/Download" title="Download"><span class="image-wrap"><img alt="Download Opticks" src="http://opticks.org/confluence/download/attachments/1572921/DownloadOpticksButton.png?version=2&amp;modificationDate=1238069462313" style="border: 0px solid black;" /></span></a> <a href="http://opticks.org/confluence/display/opticks/Sample+Data" title="Sample Data"><span class="image-wrap"><img alt="Download Sample Data" src="http://opticks.org/confluence/download/attachments/1572921/DownloadSampleDataButton.png?version=1&amp;modificationDate=1257540092065" style="border: 0px solid black;" /></span></a></p>


<h2><a name="EasyImageLinkingwithOpticks4.8.0-Tutorial" />Tutorial</h2>

<p>Open Opticks, and import all of the .re.ice.h5 files from the archive (there should be 3 altogether: spectral, thermal, and pan). You can do this either by using the "Import Data" command from the "File" menu or the toolbar button ( <span class="image-wrap"><img src="http://opticks.org/confluence/download/attachments/6652844/OpenIcon.png?version=1&amp;modificationDate=1327599750542" style="border: 0px solid black;" /></span>), or, if you prefer, you can drag and drop the files onto Opticks. As a side note, you can drag-and-drop multiple files at once, and you can use the "Import Options" dialog if you drag-and-drop using the secondary (e.g.: right) mouse button. For this example, I did not change any import options, so a regular drag-and-drop will do the trick for us. The files should load without any errors, although there will be a warning "Unable to load statistics" for each file. This is normal and is expected for these files (I believe that they use an older file format which did not support statistics, although I did not confirm this information).</p>

<p>Now that the files are loaded, tile the windows for a better look. This can be done by selecting "Tile Horizontally" from the "Window" menu ( <span class="image-wrap"><img src="http://opticks.org/confluence/download/attachments/6652844/TileHorizIcon.png?version=1&amp;modificationDate=1327599750551" style="border: 0px solid black;" /></span>). Now click within each window and press the 'e' key on the keyboard or click on the "Zoom to Fit" toolbar button ( <span class="image-wrap"><img src="http://opticks.org/confluence/download/attachments/6652844/ZoomToFitIcon.png?version=1&amp;modificationDate=1327599750546" style="border: 0px solid black;" /></span>). The Opticks window should now look like this:</p>

<p><span class="image-wrap" style="display: block; text-align: center;"><img src="http://opticks.org/confluence/download/attachments/6652844/EasyLinking_1.jpg?version=1&amp;modificationDate=1327600266064" style="border: 0px solid black;" /></span></p>

<h4><a name="EasyImageLinkingwithOpticks4.8.0-ImageLinkingWithOpticks4.7.1andEarlier%28or%3ATheOldWay%29" />Image Linking With Opticks 4.7.1 and Earlier (or: The Old Way)</h4>

<p>Historically, there have been two ways to perform linking. There is a toolbar button ( <span class="image-wrap"><img src="http://opticks.org/confluence/download/attachments/6652844/LinkIcon.png?version=1&amp;modificationDate=1327599771366" style="border: 0px solid black;" /></span>), and there is a menu entry under "Tools" called "Link/Unlink...". Selecting either of those will invoke the Link/Unlink dialog.</p>

<p><span class="image-wrap" style="display: block; text-align: center;"><img src="http://opticks.org/confluence/download/attachments/6652844/LinkDlg1.jpg?version=1&amp;modificationDate=1327599750535" style="border: 0px solid black;" /></span></p>

<p>Select any of the 3 images in the combo box (I chose "spectral"), and remember the name. Click "Next &gt;".</p>

<p><span class="image-wrap" style="display: block; text-align: center;"><img src="http://opticks.org/confluence/download/attachments/6652844/LinkDlg2.jpg?version=1&amp;modificationDate=1327599750520" style="border: 0px solid black;" /></span></p>

<p>The second page is the tricky part. Check the checkbox under "Views" (you may have to click twice. This is an <a class="external-link" href="https://issues.ballforge.net/jira/browse/OPTICKS-1356">annoying little bug</a> that we would love to have fixed by someone in the community. <a href="http://opticks.org/confluence/display/opticks/Mailing+Lists" title="Mailing Lists">Send us a patch</a>!). Make sure that "Automatic" Link Type is selected and that the link is two-way by clicking the "Two-Way" checkbox. Just make it look like the image above and click "Next &gt;" again.</p>

<p><span class="image-wrap" style="display: block; text-align: center;"><img src="http://opticks.org/confluence/download/attachments/6652844/LinkDlg3.jpg?version=1&amp;modificationDate=1327599755851" style="border: 0px solid black;" /></span></p>

<p>We are almost halfway done. (Hey, I warned you that the old method was tedious. Fear not – the new method is much faster!) Now select an image which does <b>not</b> match the image you selected on page 1 (I chose "pan"). Click "Finish". And click "OK" on the message boxes telling you about zoom/pan limits. No, you are not actually finished. Go back and reopen the dialog, and select a different set of images (e.g.: "spectral" on page 1 and "thermal" on page 3). Oh, and don't forget the <a class="external-link" href="https://issues.ballforge.net/jira/browse/OPTICKS-1356">annoying little bug</a> on page 2. And the message boxes - yikes!!</p>

<h4><a name="EasyImageLinkingwithOpticks4.8.0-ImageLinkingWithOpticks4.8.0andlater%28or%3ATheNewWay%29" />Image Linking With Opticks 4.8.0 and later (or: The New Way)</h4>

<p>Now forget about the Link/Unlink dialog. Unless you want to do something fancy, you will probably never need it again. The Session Explorer now has Link/Unlink capability built into it. From the Session Explorer, select all 3 windows by <a class="external-link" href="http://www.webopedia.com/TERM/S/shift_clicking.html">shift-clicking</a> or ctrl-clicking. Right-click (or left-click for us southpaws!) on your selection and click "Link" (note: if you have already linked the images as described above you will need to click "Unlink" first). Presto! This does the same thing as the Link/Unlink dialog! I should also mention that you can do this with one click. There is a new "Link All Windows" toolbar button ( <span class="image-wrap"><img src="http://opticks.org/confluence/download/attachments/6652844/LinkAllWindows.png?version=1&amp;modificationDate=1327599763495" style="border: 0px solid black;" /></span>) and a corresponding entry under the "Tools" menu.</p>

<p><span class="image-wrap" style="display: block; text-align: center;"><img src="http://opticks.org/confluence/download/attachments/6652844/EasyLinking_3.jpg?version=1&amp;modificationDate=1327601589353" style="border: 0px solid black;" /></span></p>

<p>For the power users out there I should also mention that there is an options page to control the Link Type. It is under "Tools" -&gt; "Options". The Link Type option is under "Windows" -&gt; "Workspace" -&gt; "All". Here is a screenshot showing its hiding place:</p>

<p><span class="image-wrap" style="display: block; text-align: center;"><img src="http://opticks.org/confluence/download/attachments/6652844/EasyLinking_4.jpg?version=1&amp;modificationDate=1327673552609" style="border: 0px solid black;" /></span></p>

<h4><a name="EasyImageLinkingwithOpticks4.8.0-HowtoUseOpticksWhileImagesAreLinked" />How to Use Opticks While Images Are Linked</h4>

<p>So now that the images are linked, you can use the normal zoom and pan functions in Opticks. This should move all of the views within the windows around automatically and keep them in lock-step. Here is a sample screenshot:</p>

<p><span class="image-wrap" style="display: block; text-align: center;"><img src="http://opticks.org/confluence/download/attachments/6652844/EasyLinking_2.jpg?version=1&amp;modificationDate=1327600266071" style="border: 0px solid black;" /></span></p>

<p>By the way, you can also unlink images once you are done. Either use the Link/Unlink dialog and select "Unlink" as the Link Type, or (4.8.0 and later) select one or more windows using the Session Explorer and select "Unlink".</p>

<h6><a name="EasyImageLinkingwithOpticks4.8.0-BonusQuestion" />Bonus Question</h6>

<p>The final screenshot above is from Opticks 4.7.1. There is one toolbar button present in Opticks 4.8.0 which is missing from this screenshot. Another hint: it was mentioned somewhere in this tutorial. Can you find it? <a class="external-link" href="https://twitter.com/#!/opticksProject">Tweet</a> the answer to us or post it on <a class="external-link" href="https://facebook.com/opticksProject">our wall</a>! </p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~dadkins/2012/01/30/Easy+Image+Linking+with+Opticks+4.8.0">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/Fe-jtSxL1dw" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~dadkins/2012/01/30/Easy+Image+Linking+with+Opticks+4.8.0</feedburner:origLink></entry><entry><title type="text">Stuart Miller Blog: LiDAR - An expanding field to be excited about</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/zwHSXiodoXE/LiDAR+-+An+expanding+field+to+be+excited+about" /><author><name>Stuart Miller</name></author><updated>2012-01-13T05:56:36-08:00</updated><id>tag:opticks.org,2009:blogpost-6652735-4</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>edited</b> by
                    <a href="http://opticks.org/confluence/display/~sbmiller">Stuart Miller</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <p>A new imaging field that is really growing in popularity right now is LiDAR/LaDAR.  These funky looking acronyms stand either for Light Detection And Ranging or Laser Detection And Ranging, depending on the technique used to collect the data.  LiDAR/LaDAR work similarly to radar, just with light instead of sound waves.  A typical collection involves shining a light on a surface and then checking the return time back to the sensor in order to determine the surface's distance.  By collecting a large volume of points - frequently numbering in the millions - a point cloud can be generated that can be used to accurately visualize the surface in 3D.</p>

<div align="center" class="myclass"><p><span class="image-wrap" style="display: block; text-align: center;"><img src="http://farm8.staticflickr.com/7142/6604642639_e209ca05dd_b.jpg" style="border: 1px solid black;" width="500" /></span><br class="atl-forced-newline" />
LiDAR Visualization of the US Capitol Building (<a class="external-link" href="http://www.flickr.com/photos/72128514@N04/6604642639/sizes/l/in/photostream/">source</a>)</p></div>


<p>The most obvious application for LiDAR collections is in surface reconstruction.  LiDAR sensors can easily be placed on aerial vehicles to collect data over large swaths of land, and once the data has been collected the points can be displayed in their raw format or processed to reconstruct a standard 3D mesh, which can be exported and used in various 3D rendering engines.  The raw point cloud can also be processed using a variety of algorithms to do interesting things, such as virtually removing trees and man-made objects in order to better analyze the bare earth.  This allows for a great amount of insight into the topological composition of areas without having to physically destroy anything.  One such algorithm is outlined <a class="external-link" href="http://pugetsoundlidar.ess.washington.edu/vdf4.pdf">here</a> (PDF link), and shows the impressive results that an analyst can get by using very basic processing techniques on the data.</p>

<p>Interest in LiDAR is expanding beyond GIS applications, however.  A major advancement in the accessibility of the technology came with the release of the Microsoft Kinect in 2010, which has a relatively low-resolution LiDAR sensor built in to detect the spatial position of users in front of the camera.  Since the device operates over USB, developers were able to create a driver that allowed the Kinect to be used on a PC, giving rise to a large community dedicated to using the technology in new and interesting ways.  One academic group in Germany was able to create a simple face scanner that uses the spatial positioning data from the LiDAR sensor to create all of the geometry, as well as getting texture data from the normal RGB camera.  You can see their results in this <a class="external-link" href="http://www.youtube.com/watch?v=llNSQ2u2rT4">video</a>.  Due to the explosive popularity of Kinect hacking, Microsoft is planning on releasing a version of the device specifically for PCs sometime in 2012.</p>

<div align="center" class="myclass"><p><span class="image-wrap" style="display: block; text-align: center;"><img src="http://opticks.org/confluence/download/attachments/6652735/houseofcards.png?version=1&amp;modificationDate=1326462430778" style="border: 1px solid black;" /></span><br class="atl-forced-newline" />
Thom Yorke's big goofy head... in 3D</p></div>


<p>Point clouds have also gained popularity with artists due to the unique visualizations that can be produced.  In late 2011, GeoDigital hosted a competition called <a class="external-link" href="http://geodigital.com/template_b.cfm?id=160&amp;action=published">LiDAR as Art</a> where users could submit artistic LiDAR renderings, with the author of the best photo winning an iPad.  You can see the submissions on their <a class="external-link" href="http://www.flickr.com/photos/72128514@N04/6635975717/">Flickr stream</a>.  Additionally, some major music videos have been released recently that relied entirely on LiDAR for their visualizations: Linkin Park's <a class="external-link" href="http://www.youtube.com/watch?v=5qF_qbaWt3Q">"Waiting For The End"</a> and Radiohead's <a class="external-link" href="http://www.youtube.com/watch?v=8nTFjVm9sTQ">"House Of Cards."</a>  Radiohead also released all of the data used in composing the "House of Cards" video freely on a <a class="external-link" href="http://code.google.com/creative/radiohead/">Google Code page</a>, allowing those interested in the technology to explore the full data set and understand how the video was created. </p><div align="center" class="myclass"> <span class="image-wrap"><img src="http://opticks.org/confluence/download/attachments/6652735/optickslidar.png?version=1&amp;modificationDate=1326462846623" style="border: 1px solid black;" /></span><br class="atl-forced-newline" />
LiDAR in Opticks prototype</div>
<p />


<p>We on the Opticks team are pretty excited about this technology, and have done some internal prototypes to see how we can integrate LiDAR support into our platform.  Much of our work is very early, but we're hoping as time and funding become available we can expand further and eventually have a release with full support for common LiDAR formats, particularly LAS.  If you are interested in following the development of our LiDAR support, you can check the <a class="external-link" href="https://issues.ballforge.net/jira/browse/OPTICKS-1109">open issue</a> on our bug tracker where we will post updates as they occur.  We also have some public builds of our prototypes available for download on <a class="external-link" href="http://opticks.org/hudson/job/Lidar-Daily-Windows/">Hudson</a>.</p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~sbmiller/2012/01/12/LiDAR+-+An+expanding+field+to+be+excited+about">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/zwHSXiodoXE" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~sbmiller/2012/01/12/LiDAR+-+An+expanding+field+to+be+excited+about</feedburner:origLink></entry><entry><title type="text">Trevor Clarke Blog: Accessing Histogram Data with Python</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/wov5g4xrc7c/Accessing+Histogram+Data+with+Python" /><author><name>Trevor Clarke</name></author><updated>2011-09-27T06:12:08-07:00</updated><id>tag:opticks.org,2009:blogpost-5997494-2</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>edited</b> by
                    <a href="http://opticks.org/confluence/display/~tclarke">Trevor Clarke</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <p>The Opticks histogram can be a powerful analysis tool but sometimes you want to access the data outside of Opticks or in a Python script. While you can export an image of the histogram (right-click on the histogram and select Export) you'll need Python (or C++) to work directly with the histogram values. Here's how:</p>

<h2><a name="AccessingHistogramDatawithPython-WorkingwithRasterLayerstatistics" />Working with RasterLayer statistics</h2>

<p>First, you need a RasterLayer. Python currently supports accessing statistics for a layer channel (red, green, blue, or gray) only. This example accesses statistics for the primary raster layer in the active view, so click on the view you want to use. See <a class="external-link" href="http://opticks.org/docs/sdk/latest-stable/de/d7f/group__simple__api.html#gda57a7f6dfdacb680bb0edb79b0ea498">the API docs</a> for full details.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<p>The <tt>histogram_centers</tt> member is a list of bin centers and the <tt>histogram_counts</tt> member contains the number of pixels in each bin. There are also basic statistics in the <tt>s</tt> object. You can save these to a comma separated value (CSV) file.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<h2><a name="AccessingHistogramDatawithPython-Workingwitharbitrarystatistics" />Working with arbitrary statistics</h2>

<p>If you want to work with (or save) statistics for an arbitrary subset of the data you'll need a different technique. (want to access arbitrary statistics using the previous method? <a href="http://opticks.org/confluence/display/opticks/Bug+and+Enhancement+Reporting+Guidelines" title="Bug and Enhancement Reporting Guidelines">Add an enhancement request</a>)</p>

<p>First you need to access the data for the appropriate RasterElement. Next you need to use Python to calculate the statistics. The follow example will calculate exactly the same statistics as the previous example (assuming the first band was displayed in the gray channel and the data is in BSQ format).</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<p>You can calculate statistics for arbitrary subsets of the data as well.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~tclarke/2011/07/08/Accessing+Histogram+Data+with+Python">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/wov5g4xrc7c" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~tclarke/2011/07/08/Accessing+Histogram+Data+with+Python</feedburner:origLink></entry><entry><title type="text">Trevor Clarke Blog: Accessing Histogram Data with Python</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/wov5g4xrc7c/Accessing+Histogram+Data+with+Python" /><author><name>Trevor Clarke</name></author><updated>2011-07-08T09:49:33-07:00</updated><id>tag:opticks.org,2009:blogpost-5997494-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~tclarke">Trevor Clarke</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <p>The Opticks histogram can be a powerful analysis tool but sometimes you want to access the data outside of Opticks or in a Python script. While you can export an image of the histogram (right-click on the histogram and select Export) you'll need Python (or C++) to work directly with the histogram values. Here's how:</p>

<h2><a name="AccessingHistogramDatawithPython-WorkingwithRasterLayerstatistics" />Working with RasterLayer statistics</h2>

<p>First, you need a RasterLayer. Python currently supports accessing statistics for a layer channel (red, green, blue, or gray) only. This example accesses statistics for the primary raster layer in the active view, so click on the view you want to use. See <a class="external-link" href="http://opticks.org/docs/sdk/latest-stable/de/d7f/group__simple__api.html#gda57a7f6dfdacb680bb0edb79b0ea498">the API docs</a> for full details.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<p>The <tt>histogram_centers</tt> member is a list of bin centers and the <tt>histogram_counts</tt> member contains the number of pixels in each bin. There are also basic statistics in the <tt>s</tt> object. You can save these to a comma separated value (CSV) file.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<h2><a name="AccessingHistogramDatawithPython-Workingwitharbitrarystatistics" />Working with arbitrary statistics</h2>

<p>If you want to work with (or save) statistics for an arbitrary subset of the data you'll need a different technique. (want to access arbitrary statistics using the previous method? <a href="http://opticks.org/confluence/display/opticks/Bug+and+Enhancement+Reporting+Guidelines" title="Bug and Enhancement Reporting Guidelines">Add an enhancement request</a>)</p>

<p>First you need to access the data for the appropriate RasterElement. Next you need to use Python to calculate the statistics. The follow example will calculate exactly the same statistics as the previous example (assuming the first band was displayed in the gray channel and the data is in BSQ format).</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<p>You can calculate statistics for arbitrary subsets of the data as well.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~tclarke/2011/07/08/Accessing+Histogram+Data+with+Python">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/wov5g4xrc7c" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~tclarke/2011/07/08/Accessing+Histogram+Data+with+Python</feedburner:origLink></entry><entry><title type="text">Trevor Clarke Blog: Converting video for use in Opticks</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/P7akmCHimjQ/Converting+video+for+use+in+Opticks" /><author><name>Trevor Clarke</name></author><updated>2011-05-09T07:21:19-07:00</updated><id>tag:opticks.org,2009:blogpost-5997105-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~tclarke">Trevor Clarke</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <h4><a name="ConvertingvideoforuseinOpticks-Basicgrayscalevideoconversion" />Basic gray scale video conversion</h4>

<p>Opticks does not currently have a video import for avi, mpg, etc. although there is some preliminary work in COAN. If you'd like to import a video for now, you can use ffmpeg to convert the video to raw frames and import those. Here is a brief example.</p>

<p><tt>ffmpeg -i input_file.mpg -f rawvideo -pix_fmt gray output_file.raw</tt></p>

<p>In the output from ffmpeg you'll see some information about the frame size. For example:</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<p>The <tt>Stream #0.0: Video: mjpeg, yuvj422p, 640x480, 30 tbr, 30 tbn, 30 tbc</tt> part is the interesting line and indicates a <tt>640x480</tt> pixel frame size.</p>

<p>You'll also need the total number of frames which is available when the conversion completes in the line which looks like:</p>

<p><tt>frame= 1832 fps= 39 q=0.0 Lsize=  549600kB time=61.07 bitrate=73728.7kbits/s dup=430 drop=0</tt></p>

<p>This example has 1832 frames.</p>

<p>When the conversion is done, load Opticks and go to <tt>File-&gt;Import Data...</tt>. Choose the <tt>Generic Importer</tt> and select <tt>output_file.raw</tt> then hit the <tt>Options</tt> button.</p>

<p>In the <tt>File</tt> tab put the frame size in the <tt>Columns</tt> and <tt>Rows</tt> sections and the total number of frames in the <tt>Bands</tt> section. <tt>Bits Per Element</tt> is 8 and <tt>Interleav Format</tt> is <tt>BSQ - single file</tt>. You may also want to set the <tt>On Disk (Read-Only)</tt> <tt>Processing Location</tt> in the <tt>Data</tt> tab. Import the file and you'll have a gray scale image. You can create a new animation using <tt>View-&gt;Create Animation</tt> or using the video extension from COAN.</p>

<p>You may want to use <tt>File-&gt;Export</tt> to save the file as a compressed ICE in order to save disk space. Choose <tt>Options-&gt;Ice Exporter</tt> in the export dialog and select GZIP compression.</p>

<h4><a name="ConvertingvideoforuseinOpticks-Colorvideoconversion" />Color video conversion</h4>

<p>If you want to convert all the color channels, you'll have to create separate files for each color channel. Instructions are below. When converting with ffmpeg, use a different <tt>-pix_fmt</tt> to select the appropriate color channel. You can also generate more bits per pixel if you need to extra dynamic range. If you change the bits per pixel, don't forget to adjust the <tt>Bits Per Element</tt> in the <tt>File</tt> tab when importing and also the <tt>Data Type</tt> in the <tt>Data</tt> tab. You can use <tt>-pix_fmt list</tt> to get a list of available formats.</p>

<div class="table-wrap">
<table class="confluenceTable"><tbody>
<tr>
<th class="confluenceTh">pix_fmt</th>
<th class="confluenceTh">channel</th>
<th class="confluenceTh">element size</th>
</tr>
<tr>
<td class="confluenceTd">gray</td>
<td class="confluenceTd">all colors converted to an unscaled gray channel</td>
<td class="confluenceTd">8bpp</td>
</tr>
<tr>
<td class="confluenceTd">gray16le</td>
<td class="confluenceTd">same as gray but with 2 byte little endian pixels</td>
<td class="confluenceTd">16bpp</td>
</tr>
<tr>
<td class="confluenceTd">rgb24</td>
<td class="confluenceTd">red, green and blue channels which need to be split</td>
<td class="confluenceTd">8bpp</td>
</tr>
<tr>
<td class="confluenceTd">yuv422</td>
<td class="confluenceTd">YUV color space with 1 byte luminance and half byte color channels</td>
<td class="confluenceTd">8/4bpp</td>
</tr>
</tbody></table>
</div>


<p>To split channels you need to use an external tool. An example python script follows. This is not a very efficient script but demonstrates the technique.</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<p>Import each of the three color channel files. Use one as the display layer but set the red, green, and blue color channels to the different raster elements. When animating, this will display as a color image.</p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~tclarke/2011/05/09/Converting+video+for+use+in+Opticks">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/P7akmCHimjQ" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~tclarke/2011/05/09/Converting+video+for+use+in+Opticks</feedburner:origLink></entry><entry><title type="text">Trevor Clarke Blog: Calculating terrain analysis indices</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/JecI3HcFX2c/Calculating+terrain+analysis+indices" /><author><name>Trevor Clarke</name></author><updated>2010-12-22T10:32:48-08:00</updated><id>tag:opticks.org,2009:blogpost-5996608-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~tclarke">Trevor Clarke</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <p>When performing terrain analysis and bathymetry, there are a few values which are useful for analysis. I won't go into the details on how to apply these indices, but I will show a couple of ways to calculate them in Opticks. All three of these indices involve a moving window calculation (convolution). These routines all require elevation information in a RasterElement, from a DTED file for example.</p>

<h2><a name="Calculatingterrainanalysisindices-Roughness" />Roughness</h2>
<p>The roughness index is calculated by taking the height difference between the pixel at the center of the annulus and all other pixels in the annulus. The largest difference is the roughness index for the center pixel. Below is an example which uses the <a href="http://opticks.org/confluence/display/opticksExt/Python+Scripting" title="Python Scripting">Python extension</a> with the <a class="external-link" href="http://www.scipy.org">Scipy</a> Python package. The  <tt>generic_filter</tt> function passes the annulus as a one dimensional array and the <tt>extra_arguments</tt> parameter is used to pass the index of the center pixel in the annulus.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<h2><a name="Calculatingterrainanalysisindices-TopologicalRuggednessIndex%28TRI%29" />Topological Ruggedness Index (TRI)</h2>
<p>Similar to the roughness index, the TRI is calculated by taking the height difference between the pixel at the center of the annulus and all other pixels in the annulus. Instead of selecting the largest difference, the mean of the differences is calculated as the TRI. Below is a routine which calculates TRI using Python.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<h2><a name="Calculatingterrainanalysisindices-TopologicalPositionIndex%28TPI%29" />Topological Position Index (TPI)</h2>
<p>The TPI is similar to the TRI but instead of calculating the average of the height differences, we calculate the difference between the center pixel height and the average of the other pixels in the annulus. The Python code is very to the previous examples and is displayed below.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<h2><a name="Calculatingterrainanalysisindices-Realtimecalculation" />Real time calculation</h2>
<p>It's also possible to calculating these indices in real-time on a GPU by using the Cg filter functionality in Opticks. A number of files need to be created and placed in your Opticks install before starting Opticks. The Cg programs for the TRI and TPI are shown below. Instead of using a 9x9 moving window, a smaller 3x3 is used in these examples in order to reduce the number of lines of code. The size can be increased by adding new terms. A smaller window results in a more details, "higher resolution" index map. Roughness is left as an exercise for the reader.</p>

<h3><a name="Calculatingterrainanalysisindices-Placein%7B%7BSupportFiles%2FCg%2FTRI.cg%7D%7D" />Place in <tt>SupportFiles/Cg/TRI.cg</tt></h3>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<h3><a name="Calculatingterrainanalysisindices-Placein%7B%7BSupportFiles%2FCg%2FTPI.cg%7D%7D" />Place in <tt>SupportFiles/Cg/TPI.cg</tt></h3>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<h3><a name="Calculatingterrainanalysisindices-Placein%7B%7BSupportFiles%2FImageFilters%2FTerrain.gic%7D%7D" />Place in <tt>SupportFiles/ImageFilters/Terrain.gic</tt></h3>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">

</div></div>

<p>Start Opticks and load a DTED. In the <tt>RasterLayer</tt> properties, enable GPU filters and select the index program. You will need to manually adjust the stretch since the histogram is calculated for the original data and not the index data. Try a raw stretch of <tt>-100 to 100</tt> as a starting point.</p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~tclarke/2010/12/22/Calculating+terrain+analysis+indices">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/JecI3HcFX2c" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~tclarke/2010/12/22/Calculating+terrain+analysis+indices</feedburner:origLink></entry><entry><title type="text">Trevor Clarke Blog: Linux dependency builds</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/wgXxiAkzaZ0/Linux+dependency+builds" /><author><name>Trevor Clarke</name></author><updated>2010-12-17T09:32:23-08:00</updated><id>tag:opticks.org,2009:blogpost-5996592-2</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>edited</b> by
                    <a href="http://opticks.org/confluence/display/~tclarke">Trevor Clarke</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <p>If you would like to build Opticks for Linux (instead of using our pre-built packages) I've placed dependency builds <a class="external-link" href="http://opticks.org/downloads/dependencies/Linux/">here</a>. You'll need to manually download these and place them in your <tt>trunk/Dependencies/packages</tt> directory then run <tt>dependencies.py</tt>.</p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~tclarke/2010/12/17/Linux+dependency+builds">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/wgXxiAkzaZ0" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~tclarke/2010/12/17/Linux+dependency+builds</feedburner:origLink></entry><entry><title type="text">Trevor Clarke Blog: New Python sample script</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/hBDLZf93q2U/New+Python+sample+script" /><author><name>Trevor Clarke</name></author><updated>2010-12-10T12:16:03-08:00</updated><id>tag:opticks.org,2009:blogpost-5996572-1</id><summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="feed">    <p>
        Blog post
            <b>added</b> by
                    <a href="http://opticks.org/confluence/display/~tclarke">Trevor Clarke</a>
            </p>
            <div style="border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 10px;">
         <p>I've added a new sample Python script which uses OpenCV and Opticks animation callbacks to stabilize a video stream. You can <a href="http://opticks.org/confluence/display/opticksExtras/Using+animation+callbacks+to+stabilize+video" title="Using animation callbacks to stabilize video">go here</a> to read it.</p>
    </div>
        <div style="padding: 10px 0;">
       <a href="http://opticks.org/confluence/display/~tclarke/2010/12/10/New+Python+sample+script">View Online</a>
           </div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/hBDLZf93q2U" height="1" width="1" /></div></summary><feedburner:origLink>http://opticks.org/confluence/display/~tclarke/2010/12/10/New+Python+sample+script</feedburner:origLink></entry><entry><title type="text">Optick Illusions: Opticks Extension Development Quick Start - Updated for latest Opticks 4.4.0 Release</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/97sLkLkop9E/opticks-extension-development-quick.html" /><category term="opticks" /><author><name>Kip Streithorst</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/11202922401908924291</uri></author><updated>2010-08-12T10:40:44-07:00</updated><id>tag:blogger.com,1999:blog-59697918797385074.post-62366445585519395</id><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I've updated my Quick Start for Opticks Extension Development since Opticks 4.4.0 was just released.  You can use this on Windows to get started and only need to download this, which is 33MB instead of the regular Opticks Windows SDK, which is 290MB.<br /><br /><span style="font-weight: bold;">So, what do you get out of the Quick Start?</span><br />Download it, double-click on two batch files and you will have two tutorial plug-ins compiled and installed into your Opticks install that you can start using with a sample data file that's been bundled into the Quick Start. From there you can modify these plug-ins or create your own using the instructions bundled in the Quick Start.<br /><br /><span style="font-weight: bold;">So, what do you need?</span><br /><ul><li>Quick Start Download</li><ul><li><a href="http://opticks.org/downloads/other/misc/InterimSDK/OpticksExtensionDevQuickStartForWindowsForOpticks-4.4.0.exe">exe</a> - this is a self extracting <a href="http://www.7zip.com/">7z</a>, just double-click.  No need to install anything.</li><li><span style="font-weight: bold;">OR</span><br /></li><li><a href="http://opticks.org/downloads/other/misc/InterimSDK/OpticksExtensionDevQuickStartForWindowsForOpticks-4.4.0.7z">7zip</a> - if you don't want to use above self extracting exe.  You should download and install <a href="http://www.7-zip.org/">7-Zip File Manager</a> to extract this.</li></ul><li><a href="http://opticks.org/confluence/display/opticks/Downloading+Opticks+4.4.X...?download_url=%2Fopticks%2F4.4.0%2Fopticks-4.4.0-windows-32Bit.zip">Opticks 4.4.0 32-bit</a></li><li><a href="http://www.python.org/download/">Python</a>, 2.5 or 2.6 are known to work.</li></ul>Then unzip the Quick Start package and open the README.html in your web browser for further instructions. You'll be up and running in 15 minutes, probably less.<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/59697918797385074-62366445585519395?l=optick-illusions.blogspot.com" width="1" /></div><img height="1" src="http://feeds.feedburner.com/~r/OptickIllusions/~4/Nb3Z_MCEJco" width="1" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/97sLkLkop9E" height="1" width="1" /></div></content><feedburner:origLink>http://optick-illusions.blogspot.com/2010/08/opticks-extension-development-quick.html</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/OptickIllusions/~3/Nb3Z_MCEJco/opticks-extension-development-quick.html</feedburner:origLink></entry><entry><title type="text">Optick Illusions: Opticks Extension Development - Get Started In Less Than 15 Minutes</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/iJdhP_gIrhE/opticks-extension-development-get.html" /><category term="opticks" /><author><name>Kip Streithorst</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/11202922401908924291</uri></author><updated>2010-05-12T11:04:48-07:00</updated><id>tag:blogger.com,1999:blog-59697918797385074.post-8465589078328535427</id><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The<a href="http://bit.ly/2I4bcs"> Opticks Open-Source Programming Contest</a> deadline is just 3 weeks away (June 4th, 2010).  And along with this, I was inspired to come up with a way to quick start extension development for <a href="http://opticks.org/">Opticks</a>.  So, over the weekend I created a Quick Start package for use on Windows, which is only 33 MB.  You only need to download this and can skip downloading the Opticks Windows SDK, which is 266 MB, so I just saved you 233 MB of download time.<br /><br /><span style="font-weight: bold;">So, what do you get out of the Quick Start?</span><br />Download it, double-click on two batch files and you will have two tutorial plug-ins compiled and installed into your Opticks install that you can start using with a sample data file that's been bundled into the Quick Start.  From there you can modify these plug-ins or create your own using the instructions bundled in the Quick Start.<br /><br /><span style="font-weight: bold;">So, what do you need?</span><br /><ul><li>Quick Start Download</li><ul><li><a href="https://opticks.ballforge.net/files/documents/8/424/OpticksExtensionDevQuickStartForWindows-1.0.0.exe">exe</a> - this is a self extracting <a href="http://www.7zip.com/">7z</a>, just double-click.  No need to install anything.</li><li><span style="font-weight: bold;">OR</span><br /></li><li><a href="https://opticks.ballforge.net/files/documents/8/425/OpticksExtensionDevQuickStartForWindows-1.0.0.7z">7zip</a> - if you don't want to use above self extracting exe.  You should download and install <a href="http://www.7-zip.org/">7-Zip File Manager</a> to extract this.</li></ul><li><a href="http://opticks.org/confluence/display/opticks/Downloading+Opticks+4.3.X...?download_url=%2F8%2F400%2Fopticks-4.3.3-windows-32Bit.zip">Opticks 4.3.3 32-bit</a></li><li><a href="http://www.python.org/download/">Python</a>, 2.5 or 2.6 are known to work.</li></ul>Then unzip the Quick Start package and open the README.html in your web browser for further instructions.  You'll be up and running in 15 minutes, probably less.<br /><br />Hopefully, this is the impetus you need to start developing a plug-in for the <a href="http://bit.ly/2I4bcs">Opticks programming contest</a> or just to develop plug-in for <a href="http://opticks.org/">Opticks</a> in general.  Don't forget you can win a Nintendo Wii or PS3 in the contest.<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/59697918797385074-8465589078328535427?l=optick-illusions.blogspot.com" width="1" /></div><img height="1" src="http://feeds.feedburner.com/~r/OptickIllusions/~4/2ktAepRpWU4" width="1" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/iJdhP_gIrhE" height="1" width="1" /></div></content><feedburner:origLink>http://optick-illusions.blogspot.com/2010/05/opticks-extension-development-get.html</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/OptickIllusions/~3/2ktAepRpWU4/opticks-extension-development-get.html</feedburner:origLink></entry><entry><title type="text">Optick Illusions: Visual Studio 2010</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/t_PDCw-Gg4g/visual-studio-2010.html" /><category term="opticks" /><category term="programming" /><author><name>Kip Streithorst</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/11202922401908924291</uri></author><updated>2010-03-20T19:20:54-07:00</updated><id>tag:blogger.com,1999:blog-59697918797385074.post-2903041047510448195</id><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I am very excited about the Visual Studio 2010 release.  Why would I be so excited about a compiler release?  I guess because I'm that nerdy.  Ok, it's a little more than that.  This new compiler release has some real benefits for <a href="http://opticks.org/">Opticks</a>.<br /><br /><span style="font-weight: bold;">Easier Deployment</span> - right now Opticks deployment is complicated by Visual Studio's insistence on manifests and use of the windows side by side cache.  This insistence complicates user level installs (e.g. without admin privileges) and wreaks havoc when they push a new Visual Studio patch out.  But, all of this goes away with Visual Studio 2010.  They have seen the errors of their ways and are reverting to the deployment used with Visual Studio 6.  Yeah!<br /><br /><span style="font-weight: bold;">Faster</span> - Visual Studio 2010 is including a new feature in the next C++ standard, R-value references.  You don't need to care about and I don't need to either.  But what you will care about is when applied to STL, they provide an order of magnitude speed up.  We use a lot of STL in Opticks, so I expect some noticeable speed-up.<br /><br />Needless to say, can't wait until Visual Studio 2010 gets released.  And yes we are planning on upgrading to use Visual Studio 2010 for the Opticks 4.4.X line.<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/59697918797385074-2903041047510448195?l=optick-illusions.blogspot.com" width="1" /></div><img height="1" src="http://feeds.feedburner.com/~r/OptickIllusions/~4/YQixR0cjcE0" width="1" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/t_PDCw-Gg4g" height="1" width="1" /></div></content><feedburner:origLink>http://optick-illusions.blogspot.com/2010/03/visual-studio-2010.html</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/OptickIllusions/~3/YQixR0cjcE0/visual-studio-2010.html</feedburner:origLink></entry><entry><title type="text">Optick Illusions: Google Summer of Code</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/5eKK-ZGECtU/google-summer-of-code.html" /><category term="ramble" /><category term="opticks" /><author><name>Kip Streithorst</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/11202922401908924291</uri></author><updated>2010-03-20T13:25:49-07:00</updated><id>tag:blogger.com,1999:blog-59697918797385074.post-1092070929329259586</id><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Woot! <a href="http://opticks.org/">Opticks</a> has been accepted into <a href="http://socghop.appspot.com/">Google Summer of Code 2010</a> as a <a href="http://socghop.appspot.com/gsoc/org/show/google/gsoc2010/opticks">mentoring organization</a>. I'm very excited and the interest we've had from students already is amazing.  It's going to be a very good summer.  I've been looking forward to this for 2 years, we applied last year but weren't accepted.<br /><br />I will say I find this year's summer of code very interesting because there seem to be a good number of other scientific software packages.  Might just be me, but this is pretty cool.<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/59697918797385074-1092070929329259586?l=optick-illusions.blogspot.com" width="1" /></div><img height="1" src="http://feeds.feedburner.com/~r/OptickIllusions/~4/oM9e5ygG3Qw" width="1" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/5eKK-ZGECtU" height="1" width="1" /></div></content><feedburner:origLink>http://optick-illusions.blogspot.com/2010/03/google-summer-of-code.html</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/OptickIllusions/~3/oM9e5ygG3Qw/google-summer-of-code.html</feedburner:origLink></entry><entry><title type="text">Optick Illusions: New Opticks Website</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OpticksSpectrum/~3/qT0zBJqljnk/new-opticks-website.html" /><category term="opticks" /><author><name>Kip Streithorst</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/11202922401908924291</uri></author><updated>2009-10-19T07:06:38-07:00</updated><id>tag:blogger.com,1999:blog-59697918797385074.post-2260300966495127036</id><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I've just flipped the switch on the new Opticks website.  Just go to http://opticks.org/ to see the new site.  The goal of the new site is to better separate the Opticks community into three user groups (end-users/analysts/scientists, extension developers, and opticks developers) and then tailor the site towards those users.  So, check out the new site and let us know what you think, either as a comment here or on the Opticks mailing list or real-time chat.<br /><br />Over the next week or so, I'll be updating the old site (http://opticks.ballforge.net/) to point people to the new site.<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/59697918797385074-2260300966495127036?l=optick-illusions.blogspot.com" width="1" /></div><img height="1" src="http://feeds.feedburner.com/~r/OptickIllusions/~4/am996F59Zjg" width="1" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/OpticksSpectrum/~4/qT0zBJqljnk" height="1" width="1" /></div></content><feedburner:origLink>http://optick-illusions.blogspot.com/2009/10/new-opticks-website.html</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/OptickIllusions/~3/am996F59Zjg/new-opticks-website.html</feedburner:origLink></entry></feed>

