<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Joe's Page</title>
    <description>A web log.
</description>
    <link>http://joelarson.com/</link>
    <atom:link href="http://joelarson.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Mon, 13 Jul 2020 17:29:30 +0000</pubDate>
    <lastBuildDate>Mon, 13 Jul 2020 17:29:30 +0000</lastBuildDate>
    <generator>Jekyll v3.8.7</generator>
    
      <item>
        <title>Baby Songs</title>
        <description>&lt;p&gt;Paula and I are expecting a baby girl to arrive sometime this month! Here’s a list of jams we’ve had fun rocking out to throughout the pregnancy. What are some of your favorites? Hope you enjoy!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://genius.com/James-brown-i-got-the-feelin-lyrics&quot;&gt;I Got the Feelin’, James Brown&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Baby, baby, baby&lt;br /&gt;
Baby, baby, baby&lt;br /&gt;
Baby, baby, baby&lt;br /&gt;
Baby, baby&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://t2.genius.com/unsafe/440x440/https%3A%2F%2Fimages.genius.com%2Fd6425b6d329083faab85353b598a04bd.500x500x1.jpg&quot; width=&quot;300px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://genius.com/Peter-frampton-baby-i-love-your-way-lyrics&quot;&gt;Baby, I Love Your Way, Peter Frampton&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Ooh, baby, I love your way&lt;br /&gt;
Wanna tell you I love your way&lt;br /&gt;
Wanna be with you night and day&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://t2.genius.com/unsafe/440x442/https%3A%2F%2Fimages.genius.com%2F200870b0c3126676968f50fbe0dc70fb.315x316x1.jpg&quot; width=&quot;300px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://genius.com/Salt-n-pepa-push-it-lyrics&quot;&gt;Push It, Salt-N-Pepa&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Oooh, baby, baby&lt;br /&gt;
Baby, baby&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://t2.genius.com/unsafe/440x440/https%3A%2F%2Fimages.genius.com%2F4ef12d48c4a618a18e5f8467023ff9ec.600x600x1.jpg&quot; width=&quot;300px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://genius.com/Amy-grant-baby-baby-lyrics&quot;&gt;Baby Baby, Amy Grant&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Baby, baby&lt;br /&gt;
I’m taken with the notion&lt;br /&gt;
To love you with the sweetest of devotion&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://t2.genius.com/unsafe/440x440/https%3A%2F%2Fimages.genius.com%2Faea23e6897a2918ff959148ba173aa6f.1000x1000x1.jpg&quot; width=&quot;300px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://genius.com/The-supremes-where-did-our-love-go-lyrics&quot;&gt;Where Did Our Love Go, The Supremes&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Baby, baby&lt;br /&gt;
Baby don’t leave me&lt;br /&gt;
Ooh, please don’t leave me&lt;br /&gt;
All by myself&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://images.genius.com/a546b24484b7d104f3b4de521ea63b2f.180x182x1.png&quot; width=&quot;300px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://genius.com/Smokey-robinson-ooh-baby-baby-lyrics&quot;&gt;Ooh Baby Baby, Smokey Robinson&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Ooh oo-ooh baby baby&lt;br /&gt;
Ooh oo-ooh baby baby&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://t2.genius.com/unsafe/440x0/https%3A%2F%2Fimages.genius.com%2F7f4ec5f42aa3aa6cf222d0505089432c.348x348x1.jpg&quot; width=&quot;300px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://genius.com/Ramones-baby-i-love-you-lyrics&quot;&gt;Baby, I Love You, Ramones&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Baby, I love you&lt;br /&gt;
Come on baby&lt;br /&gt;
Baby, I love you&lt;br /&gt;
Baby I love, I love only you&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://t2.genius.com/unsafe/440x0/https%3A%2F%2Fimages.genius.com%2F5eb657106da20e9575ef253aaf41bb67.600x608x1.jpg&quot; width=&quot;300px&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Thu, 09 Jul 2020 00:00:00 +0000</pubDate>
        <link>http://joelarson.com/2020/07/09/baby-songs.html</link>
        <guid isPermaLink="true">http://joelarson.com/2020/07/09/baby-songs.html</guid>
        
        
      </item>
    
      <item>
        <title>Yet Another Blender Hillshade Tutorial</title>
        <description>&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: I acknowledge that this post could use more/better images and perhaps even some GIF’s or a video…but I wanted to just &lt;em&gt;get it out there&lt;/em&gt;. I’ll try to make it better over time. Hit me up on Twitter or send me an email with any questions&lt;/p&gt;

&lt;h2 id=&quot;intro&quot;&gt;Intro&lt;/h2&gt;

&lt;p&gt;After ogling at the cartographic works of &lt;a href=&quot;https://twitter.com/pinakographos&quot;&gt;Daniel Huffman&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/awoodruff&quot;&gt;Andy Woodruff&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/scottreinhard&quot;&gt;Scott Reinhard&lt;/a&gt; and others - I wanted to take my stab at making one of those gorgeous Blender hillshades. I think I fell down this 🐰🕳via Andy’s post “&lt;a href=&quot;https://www.axismaps.com/blog/2018/05/relief-in-10-steps/&quot;&gt;Relief mapping in 10 easy steps!&lt;/a&gt;“…I don’t think I’ve even finished all 10 steps yet 😂 but it’s all been a good excuse to cut my teeth learning Blender, practice cartography with QGIS, and simply use GDAL 😍&lt;/p&gt;

&lt;p&gt;For me, the point of all of this is purely cartographic, artistic, and hobby. Plus, one decent side effect of blogging is that you have a place to dump all of your notes for reference later. Yeah, the outputs probably won’t look as good as those aforementioned legends but from what I’ve seen so far, it certainly looks better than what I was “raised on”, when I was first getting started doing GIS … &lt;strong&gt;a lot better&lt;/strong&gt;. So if this sounds like your jam, hopefully something noted here will help&lt;/p&gt;

&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://s3-us-west-2.amazonaws.com/joetos/blender-hillshades/hillshade-default-example.png&quot; style=&quot;width:360px&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align:center; font-style:italic; font-size: smaller&quot;&gt;example: gdaldem hillshade input-dem output-hillshade&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://s3-us-west-2.amazonaws.com/joetos/blender-hillshades/hillshade-blender-example.png&quot; style=&quot;width:360px&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align:center; font-style:italic; font-size: smaller&quot;&gt;same area: but rendered in Blender&lt;/p&gt;

&lt;h2 id=&quot;this-tutorial&quot;&gt;This tutorial&lt;/h2&gt;

&lt;p&gt;Andy points to &lt;a href=&quot;https://somethingaboutmaps.wordpress.com/2017/11/16/creating-shaded-relief-in-blender/&quot;&gt;Daniel’s great series&lt;/a&gt;. But in all honesty, I got hung up on a step in &lt;em&gt;The Plane&lt;/em&gt; section - so I googled around more and found &lt;a href=&quot;http://mattfife.com/?p=3796&quot;&gt;Matt’s blog&lt;/a&gt; and finally &lt;a href=&quot;https://wanderingcartographer.wordpress.com/2014/11/14/shaded-relief-with-blendergis-part-1/&quot;&gt;Morgan’s post&lt;/a&gt;. Morgan’s notes allowed me to get some decent results by using the &lt;a href=&quot;https://github.com/domlysz/BlenderGIS&quot;&gt;BlenderGIS plugin&lt;/a&gt; - and I decided to start documenting the steps to be able to show others. &lt;em&gt;But&lt;/em&gt; I was able to come back and realize &lt;a href=&quot;#that-one-weird-trick&quot;&gt;that one weird trick&lt;/a&gt; which I was missing for Daniel’s flow&lt;/p&gt;

&lt;h2 id=&quot;data--setup&quot;&gt;Data &amp;amp; Setup&lt;/h2&gt;

&lt;p&gt;USGS’s &lt;a href=&quot;https://viewer.nationalmap.gov/basic/&quot;&gt;TNM&lt;/a&gt; is solid for accessing DEM’s. Get some data to work with from here - or wherever. The &lt;a href=&quot;http://dwtkns.com/srtm30m/&quot;&gt;30-Meter SRTM Tile Downloader&lt;/a&gt; has some good stuff too (just register for a username/password first)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://s3-us-west-2.amazonaws.com/joetos/blender-hillshades/TNM_Download.png&quot; alt=&quot;The National Map download interface&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;brew cask install blender 2.79b&lt;/code&gt; is the current release at the time this was written. By the way, I’ve used a Mac for this, so some assumptions will be made&lt;/li&gt;
  &lt;li&gt;make sure you’re on Cycles renderer &lt;span style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://s3-us-west-2.amazonaws.com/joetos/blender-hillshades/cycles.png&quot; style=&quot;width:600px&quot; /&gt;&lt;/span&gt; And set your profile to default to this. Daniel covers this is &lt;a href=&quot;https://somethingaboutmaps.wordpress.com/blender-relief-tutorial-blender-basics/&quot;&gt;Blender Basics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;you will probably want to have &lt;a href=&quot;https://qgis.org/&quot;&gt;QGIS&lt;/a&gt; around for checking DEM properties such as dimensions and pixel ranges - and to view your results. The &lt;a href=&quot;https://lutraconsulting.github.io/qgis-mac-packager/&quot;&gt;Lutra Installer&lt;/a&gt; has been working 👌for me &amp;amp; I keep an &lt;a href=&quot;https://osgeo.github.io/homebrew-osgeo4mac/&quot;&gt;OSGeo Homebrew&lt;/a&gt; version installed too&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;that-one-weird-trick&quot;&gt;&lt;a name=&quot;that-one-weird-trick&quot;&gt;That One Weird Trick&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Honestly, it took me a few days to realize this one ¯\_(ツ)_/¯ and at this point, I might as well point you back to &lt;a href=&quot;https://somethingaboutmaps.wordpress.com/blender-relief-tutorial-the-plane/&quot;&gt;Daniel’s tutorial&lt;/a&gt;. And while you’re at it, be sure to check out the rest of &lt;a href=&quot;https://somethingaboutmaps.wordpress.com/&quot;&gt;his site&lt;/a&gt; and support professional cartographers and artists like he and &lt;a href=&quot;https://www.scottreinhardmaps.com/&quot;&gt;Scott&lt;/a&gt;. These people are true professionals who make some of their living with this work - donate to them or buy from them, if you can&lt;/p&gt;

&lt;p&gt;Find the minimum and maximum elevation values of the source DEM, -16/3527 here, then:&lt;br /&gt;
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gdal_translate -of GTiff -ot UInt16 -scale -16 3527 0 65535 N14W092.hgt dem-scale.tif&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Our final output target is going to be a 16-bit unsigned integer TIFF. This means that each pixel can hold a number between 0 and 65,535&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;You’ll need to stretch your elevation range to cover the span from 0 to 65,535&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://somethingaboutmaps.wordpress.com/blender-relief-tutorial-getting-set-up/&quot; title=&quot;Blender Relief Tutorial: Getting Set Up&quot;&gt;source&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;combining-with-topographic-maps&quot;&gt;Combining with topographic maps&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://joetos.s3.amazonaws.com/blender-hillshades/devils-bathtub.png&quot; alt=&quot;Silver Divide topographic map&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This has been my playbook for obtaining old topos from &lt;a href=&quot;https://ngmdb.usgs.gov/topoview/viewer/&quot;&gt;topoView&lt;/a&gt; and combining them with &lt;a href=&quot;https://viewer.nationalmap.gov/basic/&quot;&gt;DEM’s from TNM&lt;/a&gt; (mentioned above). I keep a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;notes.txt&lt;/code&gt; file with the steps below in a directory with my working files for organization. Shoutout 🗣to the QGIS team for awesome features like temporary scratch layers, better editing and snapping tools, and the Shape Digitizing Toolbar&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Get the SRS info of the topo
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gdalsrsinfo CA_Dunsmuir_299340_1935_125000_geo.tif&lt;/code&gt;&lt;/li&gt;
      &lt;li&gt;☝️will output a PROJ.4 value like: &lt;em&gt;+proj=poly +lat_0=0 +lon_0=-122.25 +x_0=0 +y_0=0 +datum=NAD27 +units=m +no_defs&lt;/em&gt; …log this somewhere&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;create a .geojson extent around the topo in QGIS
    &lt;ul&gt;
      &lt;li&gt;add DEM first to set projection&lt;/li&gt;
      &lt;li&gt;then add the topo .tif&lt;/li&gt;
      &lt;li&gt;New Temporary Scratch Layer, geojson/polygon&lt;/li&gt;
      &lt;li&gt;Digitize inside topo collar - around topo content. Save as topo-extent.geojson in working folder&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;warp &amp;amp; clip the DEM to the extent of the topo and into its projection
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gdalwarp -s_srs EPSG:4269 -t_srs '+proj=poly +lat_0=0 +lon_0=-122.25 +x_0=0 +y_0=0 +datum=NAD27 +units=m +no_defs' -r bilinear -cutline topo-extent.geojson -crop_to_cutline n42w123/imgn42w123_13.img dem.tif&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;add DEM to QGIS and get low/high elevations for next step&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gdal_translate -of GTiff -ot UInt16 -scale 148.194 2525.06 0 65535 dem.tif dem-scale.tif&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;run orig topo tif through gdal_translate if you get something like  &lt;a href=&quot;https://joetos.s3.amazonaws.com/blender-hillshades/oops.tif&quot; target=&quot;_blank&quot;&gt;oops.tif&lt;/a&gt; from the original topo
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gdal_translate CA_Dunsmuir_299340_1935_125000_geo.tif shasta.tif&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;get extent of topo and extend the DEM. You can do this with GDAL, but I usually use QGIS. Layer Properties &amp;gt; Information
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gdalwarp -te -25858.8718268426709983 4536063.6242974959313869 26708.5448398239932430 4598949.7909641629084945 dem-scale.tif dem-scaled.tif&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;note the X,Y dimensions of the topo/DEM
    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt; Width
 4967
 Height
 5942

 For Blender scale/orthographic scale
 5942/4967 = 1.196295550634186
 1.196295550634186 * 2 = 2.392591101268371
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;Follow &lt;a href=&quot;https://somethingaboutmaps.wordpress.com/2017/11/16/creating-shaded-relief-in-blender/&quot;&gt;Daniel’s steps&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;extra-notes&quot;&gt;Extra notes&lt;/h2&gt;

&lt;h3 id=&quot;satellite-imagery&quot;&gt;Satellite imagery&lt;/h3&gt;

&lt;p&gt;Bart has a great post titled, “&lt;a href=&quot;https://www.barthoekstra.com/blog/photo-realistic-shaded-relief-using-blender&quot;&gt;Photo-realistic shaded relief using Blender&lt;/a&gt;” 👍. I like the use of the cloudless Sentinel imagery and the Python wms-downloader&lt;/p&gt;

&lt;h3 id=&quot;shadows&quot;&gt;Shadows&lt;/h3&gt;

&lt;p&gt;The GIS Whisperer &lt;a href=&quot;https://twitter.com/qgiswhisp/status/1104115562723065856&quot;&gt;tweeted&lt;/a&gt; something neat on shadows, “&lt;a href=&quot;https://landscapearchaeology.org/2019/qgis-shadows/&quot;&gt;Enhancing terrain cartography with natural shadows&lt;/a&gt;” which I tested a bit too. You can experiment with adding this on top to enhance/extend the Blender shadows&lt;/p&gt;

&lt;h3 id=&quot;general-tips-and-notes&quot;&gt;General tips and notes&lt;/h3&gt;

&lt;p&gt;Here are a few tips imma keep around for easy copy &amp;amp; paste. They’re not very well organized and some of them ended up not being required for the final workflows…going to note them anyway, for now:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;basic &lt;a href=&quot;https://www.gdal.org/gdalwarp.html&quot;&gt;reprojection&lt;/a&gt;. For a while I was using UTM as a common projection for the DEM’s, topos, and shadow layers I was using.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gdalwarp -s_srs EPSG:4269 -t_srs EPSG:26912 -r bilinear grdn37w111_13/hdr.adf dem-utm12n.tif&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;scale it. Here’s that &lt;a href=&quot;#that-one-weird-trick&quot;&gt;one weird trick&lt;/a&gt;, again&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gdal_translate -of GTiff -ot UInt16 -scale 1300.43 2465.47 0 65535 dem-utm12n.tif dem-utm12n-scale.tif&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Using an extent polygon for trimming warp artifacts (black collar/no data/etc)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gdalwarp -cutline topo-extent.geojson -crop_to_cutline dem-utm12n-scale.tif dem-utm12n-crop.tif&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;export a worldfile for a dataset with known geobounds to use with a blender render which won’t have any&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;gdalwarp -co &quot;TFW=YES&quot; las-cruces-blender-dem.tif deleteme.tif
rm deleteme.tif
mv deleteme.tfw las-cruces-blender-hillshade.tfw
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;crop the hillshade. Say you want to digitize (QGIS) or otherwise produce (GDAL) an extent polygon to use for clipping your Blender hillshade. This is that same file from above with a companion .tfw, so it’ll produce a file with easy georeferenceability for carto hacking in QGIS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gdalwarp -s_srs EPSG:26913 -t_srs EPSG:26913 -cutline extent-topo.geojson -crop_to_cutline las-cruces-hillshade.tif las-cruces-hillshade-crop.tif&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;when reprojecting, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-r bilinear&lt;/code&gt; resampling has worked best for me so far. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-tr 5 5&lt;/code&gt; if you need to scale the cell size/resolution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gdalwarp -s_srs EPSG:4269 -t_srs EPSG:26913 -r bilinear -tr 5 5 -cutline extent-shadow.geojson -crop_to_cutline -of GTiff USGS_NED_13_n33w107_IMG.img las-cruces-shadow-dem.tif&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;convert NAD27 Polyconic to UTM. Some of the old topos were in the projection. Also, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-dstnodata 0 -dstalpha&lt;/code&gt; is handy if you want to blank out black collars/no data artifacts from warping&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gdalwarp -t_srs EPSG:26912 -r bilinear -dstnodata 0 -dstalpha AZ_Marsh\ Pass_315539_1883_250000_geo.tif marshpass-utm12n.tif&lt;/code&gt;&lt;/p&gt;
</description>
        <pubDate>Sun, 07 Apr 2019 00:00:00 +0000</pubDate>
        <link>http://joelarson.com/2019/04/07/blender-hillshades.html</link>
        <guid isPermaLink="true">http://joelarson.com/2019/04/07/blender-hillshades.html</guid>
        
        
      </item>
    
      <item>
        <title>Frittata</title>
        <description>&lt;p&gt;I had never made a frittata until recently, but wow, I’m glad I did. It’s turned out to be a hit at our house. They’re easy to make, you can throw anything in/on them, and cleanup’s not too bad. You can eat a piece warm or cold, as a side or a main, throw it on a piece of toast, add whatever sauce(s) you want - so much versatility.&lt;/p&gt;

&lt;blockquote class=&quot;instagram-media&quot; data-instgrm-captioned=&quot;&quot; data-instgrm-permalink=&quot;https://www.instagram.com/p/BsJemRsAjAB/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; data-instgrm-version=&quot;12&quot; style=&quot; background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:540px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);&quot;&gt;&lt;div style=&quot;padding:16px;&quot;&gt; &lt;a href=&quot;https://www.instagram.com/p/BsJemRsAjAB/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100%;&quot; target=&quot;_blank&quot;&gt; &lt;div style=&quot; display: flex; flex-direction: row; align-items: center;&quot;&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;display: flex; flex-direction: column; flex-grow: 1; justify-content: center;&quot;&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding: 19% 0;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;display:block; height:50px; margin:0 auto 12px; width:50px;&quot;&gt;&lt;svg width=&quot;50px&quot; height=&quot;50px&quot; viewBox=&quot;0 0 60 60&quot; version=&quot;1.1&quot; xmlns=&quot;https://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;https://www.w3.org/1999/xlink&quot;&gt;&lt;g stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;&lt;g transform=&quot;translate(-511.000000, -20.000000)&quot; fill=&quot;#000000&quot;&gt;&lt;g&gt;&lt;path d=&quot;M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div style=&quot;padding-top: 8px;&quot;&gt; &lt;div style=&quot; color:#3897f0; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:550; line-height:18px;&quot;&gt; View this post on Instagram&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding: 12.5% 0;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;&quot;&gt;&lt;div&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot;background-color: #F4F4F4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 8px;&quot;&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 20px; width: 20px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot; width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg)&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: auto;&quot;&gt; &lt;div style=&quot; width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot; background-color: #F4F4F4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot; width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt; &lt;p style=&quot; margin:8px 0 0 0; padding:0 4px;&quot;&gt; &lt;a href=&quot;https://www.instagram.com/p/BsJemRsAjAB/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;&quot; target=&quot;_blank&quot;&gt;Got into the frittata game finally. Made my first one a couple months ago and have been practicing. Doing them baked-style...will have to try in cast iron sometime.&lt;/a&gt;&lt;/p&gt; &lt;p style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;&quot;&gt;A post shared by &lt;a href=&quot;https://www.instagram.com/jlarso/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px;&quot; target=&quot;_blank&quot;&gt; joe larson&lt;/a&gt; (@jlarso) on &lt;time style=&quot; font-family:Arial,sans-serif; font-size:14px; line-height:17px;&quot; datetime=&quot;2019-01-02T21:58:07+00:00&quot;&gt;Jan 2, 2019 at 1:58pm PST&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;//www.instagram.com/embed.js&quot;&gt;&lt;/script&gt;

&lt;p&gt;Not sure how I found &lt;a href=&quot;https://www.thekitchn.com/how-to-make-a-frittata-cooking-lessons-from-the-kitchn-170717&quot;&gt;this recipe&lt;/a&gt; - it was likely the first thing to turn up in a search, but it’s proven to be a good guide for the half dozen or so I’ve made recently. &lt;strong&gt;Note&lt;/strong&gt;: I’ve been doing my frittata in a 9” X 9” pyrex and entirely in the oven. I went with a square dish instead of a rectangle so the baking would hopefully be relatively consistent throughout. I’m sure I’ll get around to cooking them in cast iron - starting on the stove, then moving into the oven - but that’ll be another time. Here are the basics which have worked for me:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ingredients&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Required/most basic&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;6 large eggs&lt;/li&gt;
  &lt;li&gt;1/4 cup heavy cream&lt;/li&gt;
  &lt;li&gt;1 teaspoon salt&lt;/li&gt;
  &lt;li&gt;half or more of an onion, sauteed in a lil olive oil&lt;/li&gt;
  &lt;li&gt;2 cups or more spinach, sauteed as the onions are almost finished&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Optional&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;1-2 cloves minced, sauteed garlic&lt;/li&gt;
  &lt;li&gt;1 cup shredded cheese. So far we’ve tried Jack and Parmesan (maybe save some or add more to the top at the end)&lt;/li&gt;
  &lt;li&gt;~3 asparagus stalks, chopped (asparagus and eggs go together so well)&lt;/li&gt;
  &lt;li&gt;1-2 small, cooked &amp;amp; finely sliced/chopped potatoes&lt;/li&gt;
  &lt;li&gt;chopped bacon&lt;/li&gt;
  &lt;li&gt;sun dried tomatoes&lt;/li&gt;
  &lt;li&gt;your favorite other ingredient or leftover!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Instructions&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Heat oven 400F or do this later…because honestly, sometimes prep takes a while!&lt;/li&gt;
  &lt;li&gt;Mix eggs, cream, salt&lt;/li&gt;
  &lt;li&gt;Prep the goodness that you’re going to add…do your chopping, sauteing, grating, etc.&lt;/li&gt;
  &lt;li&gt;Butter the pyrex&lt;/li&gt;
  &lt;li&gt;Add “the goodness” into the egg mixture and mix more&lt;/li&gt;
  &lt;li&gt;Pour into buttered pyrex &amp;amp; toss it in the oven.&lt;/li&gt;
  &lt;li&gt;After 15-20 minutes, things should start looking good. Might take another 5+ mins …&lt;/li&gt;
  &lt;li&gt;For bonus points you can add more cheese near the end and finish with a broil&lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Thu, 03 Jan 2019 00:00:00 +0000</pubDate>
        <link>http://joelarson.com/2019/01/03/frittata.html</link>
        <guid isPermaLink="true">http://joelarson.com/2019/01/03/frittata.html</guid>
        
        
      </item>
    
      <item>
        <title>Holiday Letter</title>
        <description>&lt;p&gt;Hi, it’s been a while. But there’s movement in this little corner of the internet - another few lines in this log. I thought a good excuse to dust off this blog would be to get some ideas “down on paper” for an upcoming holiday letter to friends and family. Plus some &lt;a href=&quot;http://blog.geomusings.com/&quot;&gt;coworkers&lt;/a&gt; who actually &lt;a href=&quot;https://www.colemanm.org/post/a-post-each-day/&quot;&gt;consistently blog&lt;/a&gt; have inspired me a bit lately. So, 2018 - here are some highlights:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;February&lt;/em&gt; - Tahoe, CA w/ Sonia &amp;amp; Dauto; Paula’s parents came to visit and we took a trip to South Lake with my sister Megan and her boyfriend Travis. Good times indeed!&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;February/March&lt;/em&gt; - Camp Roberts, CA; went to a &lt;a href=&quot;https://twitter.com/oeon/status/974035291366293504&quot;&gt;FX event&lt;/a&gt; representing &lt;a href=&quot;https://twitter.com/oeon/status/969620835475513349&quot;&gt;SNI/Fulcrum Community&lt;/a&gt; - saw some awesome experiments, as usual.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;March&lt;/em&gt; - &lt;a href=&quot;https://twitter.com/oeon/status/972540203238703104&quot;&gt;Adobe Springs planting&lt;/a&gt;; I’ve been getting involved with the &lt;a href=&quot;http://www.supportalps.org/native-tree/&quot;&gt;ALPS Native Tree Committee&lt;/a&gt; after seeing one of their signs near our house. It’s been a great experience participating in their volunteer events and having another excuse to use &lt;a href=&quot;https://www.fulcrumapp.com/&quot;&gt;Fulcrum&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;April&lt;/em&gt; - St. Pete; &lt;a href=&quot;https://www.fulcrumapp.com/blog/spring-2018-all-hands/&quot;&gt;spring All Hands&lt;/a&gt; was pretty crazy with the growth that &lt;a href=&quot;https://spatialnetworks.com/&quot;&gt;Spatial Networks&lt;/a&gt; is going through. Met a lot of new faces and laid the foundation for some good working relationships.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;May&lt;/em&gt; - San Francisco, CA w/ Pablo &amp;amp; Camila; Paula’s cousins came to visit and they’re some of our favorite people in the universe. We took them to their first SF Giants game - which was very entertaining and the home team walked away with the &lt;strong&gt;W&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class=&quot;instagram-media&quot; data-instgrm-captioned=&quot;&quot; data-instgrm-permalink=&quot;https://www.instagram.com/p/BjB1a9LnBZ2/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; data-instgrm-version=&quot;12&quot; style=&quot; background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:540px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);&quot;&gt;&lt;div style=&quot;padding:16px;&quot;&gt; &lt;a href=&quot;https://www.instagram.com/p/BjB1a9LnBZ2/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100%;&quot; target=&quot;_blank&quot;&gt; &lt;div style=&quot; display: flex; flex-direction: row; align-items: center;&quot;&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;display: flex; flex-direction: column; flex-grow: 1; justify-content: center;&quot;&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding: 19% 0;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;display:block; height:50px; margin:0 auto 12px; width:50px;&quot;&gt;&lt;svg width=&quot;50px&quot; height=&quot;50px&quot; viewBox=&quot;0 0 60 60&quot; version=&quot;1.1&quot; xmlns=&quot;https://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;https://www.w3.org/1999/xlink&quot;&gt;&lt;g stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;&lt;g transform=&quot;translate(-511.000000, -20.000000)&quot; fill=&quot;#000000&quot;&gt;&lt;g&gt;&lt;path d=&quot;M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div style=&quot;padding-top: 8px;&quot;&gt; &lt;div style=&quot; color:#3897f0; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:550; line-height:18px;&quot;&gt; View this post on Instagram&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding: 12.5% 0;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;&quot;&gt;&lt;div&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot;background-color: #F4F4F4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 8px;&quot;&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 20px; width: 20px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot; width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg)&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: auto;&quot;&gt; &lt;div style=&quot; width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot; background-color: #F4F4F4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot; width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt; &lt;p style=&quot; margin:8px 0 0 0; padding:0 4px;&quot;&gt; &lt;a href=&quot;https://www.instagram.com/p/BjB1a9LnBZ2/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;&quot; target=&quot;_blank&quot;&gt;I can’t remember how long it’s been since I’ve walked on this bridge. We did today and wow - it’s awesome. Good times with Pablo and Camila!&lt;/a&gt;&lt;/p&gt; &lt;p style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;&quot;&gt;A post shared by &lt;a href=&quot;https://www.instagram.com/jlarso/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px;&quot; target=&quot;_blank&quot;&gt; joe larson&lt;/a&gt; (@jlarso) on &lt;time style=&quot; font-family:Arial,sans-serif; font-size:14px; line-height:17px;&quot; datetime=&quot;2018-05-21T06:01:05+00:00&quot;&gt;May 20, 2018 at 11:01pm PDT&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;//www.instagram.com/embed.js&quot;&gt;&lt;/script&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;June&lt;/em&gt; - &lt;a href=&quot;https://www.firestonebeer.com/brewery/invitational-beer-fest.php&quot;&gt;Firestone Invitational&lt;/a&gt; 🍺&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;June&lt;/em&gt; - &lt;a href=&quot;https://www.instagram.com/p/BkB3weVnfj1/&quot;&gt;Seinfeld&lt;/a&gt;; Paula and I went to see Jerry - it’s not too often that bigger events come through our small part of the world. Great show!&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;June&lt;/em&gt; - Tahoe again; Tony’s bachelor party&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class=&quot;instagram-media&quot; data-instgrm-captioned=&quot;&quot; data-instgrm-permalink=&quot;https://www.instagram.com/p/Bki7fRsnbGt/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; data-instgrm-version=&quot;12&quot; style=&quot; background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:540px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);&quot;&gt;&lt;div style=&quot;padding:16px;&quot;&gt; &lt;a href=&quot;https://www.instagram.com/p/Bki7fRsnbGt/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100%;&quot; target=&quot;_blank&quot;&gt; &lt;div style=&quot; display: flex; flex-direction: row; align-items: center;&quot;&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;display: flex; flex-direction: column; flex-grow: 1; justify-content: center;&quot;&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding: 19% 0;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;display:block; height:50px; margin:0 auto 12px; width:50px;&quot;&gt;&lt;svg width=&quot;50px&quot; height=&quot;50px&quot; viewBox=&quot;0 0 60 60&quot; version=&quot;1.1&quot; xmlns=&quot;https://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;https://www.w3.org/1999/xlink&quot;&gt;&lt;g stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;&lt;g transform=&quot;translate(-511.000000, -20.000000)&quot; fill=&quot;#000000&quot;&gt;&lt;g&gt;&lt;path d=&quot;M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div style=&quot;padding-top: 8px;&quot;&gt; &lt;div style=&quot; color:#3897f0; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:550; line-height:18px;&quot;&gt; View this post on Instagram&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding: 12.5% 0;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;&quot;&gt;&lt;div&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot;background-color: #F4F4F4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 8px;&quot;&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 20px; width: 20px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot; width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg)&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: auto;&quot;&gt; &lt;div style=&quot; width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot; background-color: #F4F4F4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot; width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt; &lt;p style=&quot; margin:8px 0 0 0; padding:0 4px;&quot;&gt; &lt;a href=&quot;https://www.instagram.com/p/Bki7fRsnbGt/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;&quot; target=&quot;_blank&quot;&gt;Sometimes you just gotta post a mustache selfie after a polar bear plunge in Lake Tahoe. Water was 👌and stache is 👋&lt;/a&gt;&lt;/p&gt; &lt;p style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;&quot;&gt;A post shared by &lt;a href=&quot;https://www.instagram.com/jlarso/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px;&quot; target=&quot;_blank&quot;&gt; joe larson&lt;/a&gt; (@jlarso) on &lt;time style=&quot; font-family:Arial,sans-serif; font-size:14px; line-height:17px;&quot; datetime=&quot;2018-06-27T23:00:26+00:00&quot;&gt;Jun 27, 2018 at 4:00pm PDT&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;//www.instagram.com/embed.js&quot;&gt;&lt;/script&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;June/July&lt;/em&gt; - World Cup ⚽️&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;July&lt;/em&gt; - Beach Season ⛱&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;August&lt;/em&gt; - More Beach Season 🏖&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;August/September&lt;/em&gt; - Africa; Nairobi, Kenya…Dar es Salaam &amp;amp; Zanzibar, Tanzania for &lt;a href=&quot;https://2018.foss4g.org/&quot;&gt;FOSS4G 2018&lt;/a&gt; I had the opportunity to travel to East Africa for work and had a simply wonderful time. The people, food, weather, and culture were all fantastic - only bummer are the long flights!&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class=&quot;instagram-media&quot; data-instgrm-captioned=&quot;&quot; data-instgrm-permalink=&quot;https://www.instagram.com/p/BnBdVjHHkIg/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; data-instgrm-version=&quot;12&quot; style=&quot; background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:540px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);&quot;&gt;&lt;div style=&quot;padding:16px;&quot;&gt; &lt;a href=&quot;https://www.instagram.com/p/BnBdVjHHkIg/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100%;&quot; target=&quot;_blank&quot;&gt; &lt;div style=&quot; display: flex; flex-direction: row; align-items: center;&quot;&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;display: flex; flex-direction: column; flex-grow: 1; justify-content: center;&quot;&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding: 19% 0;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;display:block; height:50px; margin:0 auto 12px; width:50px;&quot;&gt;&lt;svg width=&quot;50px&quot; height=&quot;50px&quot; viewBox=&quot;0 0 60 60&quot; version=&quot;1.1&quot; xmlns=&quot;https://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;https://www.w3.org/1999/xlink&quot;&gt;&lt;g stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;&lt;g transform=&quot;translate(-511.000000, -20.000000)&quot; fill=&quot;#000000&quot;&gt;&lt;g&gt;&lt;path d=&quot;M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div style=&quot;padding-top: 8px;&quot;&gt; &lt;div style=&quot; color:#3897f0; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:550; line-height:18px;&quot;&gt; View this post on Instagram&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding: 12.5% 0;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;&quot;&gt;&lt;div&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot;background-color: #F4F4F4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 8px;&quot;&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 20px; width: 20px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot; width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg)&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: auto;&quot;&gt; &lt;div style=&quot; width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot; background-color: #F4F4F4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot; width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt; &lt;p style=&quot; margin:8px 0 0 0; padding:0 4px;&quot;&gt; &lt;a href=&quot;https://www.instagram.com/p/BnBdVjHHkIg/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;&quot; target=&quot;_blank&quot;&gt;Made a new buddy leaving the Dar es Salaam airport&lt;/a&gt;&lt;/p&gt; &lt;p style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;&quot;&gt;A post shared by &lt;a href=&quot;https://www.instagram.com/jlarso/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px;&quot; target=&quot;_blank&quot;&gt; joe larson&lt;/a&gt; (@jlarso) on &lt;time style=&quot; font-family:Arial,sans-serif; font-size:14px; line-height:17px;&quot; datetime=&quot;2018-08-28T12:36:12+00:00&quot;&gt;Aug 28, 2018 at 5:36am PDT&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;//www.instagram.com/embed.js&quot;&gt;&lt;/script&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;September&lt;/em&gt; - Dallas; Tony’s wedding …got to have a 🌮with &lt;a href=&quot;https://www.fulcrumapp.com/blog/employee-spotlight-ry/&quot;&gt;Ry&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;October&lt;/em&gt; - St. Pete; &lt;a href=&quot;https://www.fulcrumapp.com/blog/fall-2018-all-hands/&quot;&gt;fall All Hands&lt;/a&gt; saw work relationships strengthened even further - and I always enjoy St. Pete/Tampa!&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;November&lt;/em&gt; - &lt;a href=&quot;https://www.firestonebeer.com/brewery/anniversary-party.php&quot;&gt;Firestone Anniversary&lt;/a&gt; 🍻&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;December&lt;/em&gt; - &lt;a href=&quot;https://twitter.com/oeon/status/1068975483696496640&quot;&gt;Three Bridges Oak Preserve&lt;/a&gt; work day; remapped, replanted, and refreshed the mitigation plantings near the trailhead.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;December&lt;/em&gt; - here we are!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’m not going to commit to anything forthcoming - but it &lt;em&gt;was&lt;/em&gt; nice to log a few lines again. I imagine I’ve omitted some highlights &amp;amp; I certainly have a whole lot to share since my last post over 2 years ago - like a &lt;a href=&quot;https://twitter.com/oeon/status/702165685393174530&quot;&gt;new job&lt;/a&gt; … a new house, some new things I’m trying to learn, and other adventures. But we’ll start with this 👋hope you’re well.&lt;/p&gt;
</description>
        <pubDate>Wed, 12 Dec 2018 00:00:00 +0000</pubDate>
        <link>http://joelarson.com/2018/12/12/holiday-letter.html</link>
        <guid isPermaLink="true">http://joelarson.com/2018/12/12/holiday-letter.html</guid>
        
        
      </item>
    
      <item>
        <title>My Local OpenStreetMap Story</title>
        <description>&lt;p&gt;&lt;strong&gt;tl;dr&lt;/strong&gt; I worked with interns to make a lot of edits to OpenStreetMap at my previous job - a County/State Government. OSM wins, the Organization wins, the interns win - there are tons of benefits for many. &lt;strong&gt;Takeaway&lt;/strong&gt;: teach others to edit OSM.&lt;/p&gt;

&lt;h2 id=&quot;feed-them-for-a-lifetime&quot;&gt;feed them for a lifetime&lt;/h2&gt;

&lt;p&gt;On a couple occasions &lt;a href=&quot;http://www.colemanm.org/&quot;&gt;Coleman&lt;/a&gt; has encouraged me to write about our accomplishments at my former job, where we leveraged &lt;strong&gt;power in numbers&lt;/strong&gt;, to ferociously edit OpenStreetMap (OSM) in our local area. Aaand he’s right, I should! I’m going to jot this down before he reminds me again 😜.&lt;/p&gt;

&lt;p&gt;My background in OSM began around the time I ‘&lt;em&gt;cyberstalked&lt;/em&gt;’ &lt;a href=&quot;https://twitter.com/wonderchook&quot;&gt;@wonderchook&lt;/a&gt; on 6 May 2010 (thank you Twitter DM’s) somewhere near Monterey, California. I sat down with her for a beer and walked away inspired…can’t recall much that we talked about but I know it was enough of a catalyst to begin getting into OSM.&lt;/p&gt;

&lt;p&gt;I live in a rural county in California, &lt;a href=&quot;https://en.wikipedia.org/wiki/San_Luis_Obispo_County,_California&quot;&gt;San Luis Obispo&lt;/a&gt;, affectionately known as &lt;strong&gt;SLO&lt;/strong&gt;. It is significant in size (area) and has only a handful of population centers - the largest city is less than 50,000 people and the entire county has less than 300,000. I used to work for a &lt;em&gt;full service all risk fire department&lt;/em&gt; - &lt;a href=&quot;https://en.wikipedia.org/wiki/California_Department_of_Forestry_and_Fire_Protection&quot;&gt;CAL FIRE&lt;/a&gt;, as a GIS Analyst. Also in SLO is &lt;a href=&quot;https://en.wikipedia.org/wiki/California_Polytechnic_State_University&quot;&gt;Cal Poly State University&lt;/a&gt;, the reason I came to the area - as well as why many other students do - which we hire(d) as interns for CAL FIRE San Luis. Being a ‘rural’ area and working for an emergency response organization means that I/we needed to provide good data for a quick response to people that need help, sometimes in far away and/or obscure areas.&lt;/p&gt;

&lt;p&gt;One of the things you do as a GIS Analyst is create data, specifically geographic databases/datasets. Something that commonly happens with GIS Analysts is that the data they create either becomes &lt;a href=&quot;https://en.wikipedia.org/wiki/Information_silo&quot;&gt;silo-ed&lt;/a&gt;, gets stale, or even is lost/destroyed - somehow, someway. During my first few years in that role, I experienced all of those possibilities. I learned that OSM could be a more permanent place for &lt;em&gt;some&lt;/em&gt; of the data we were creating in our GIS lab. I was lucky enough to have an &lt;strong&gt;awesome&lt;/strong&gt; supervisor who let me try things that were outside-of-the-box ideas and not traditional in our line of work - and we began working on OSM.&lt;/p&gt;

&lt;h2 id=&quot;getting-hungry&quot;&gt;getting hungry&lt;/h2&gt;

&lt;p&gt;I guess you could say it all began with our lab wanting to collaboratively edit GIS data. We originally considered: pgVersion and zigGIS - from what I can recall. You may have guessed, our shop didn’t have a robust budget to afford ArcGIS for Server. As a State/County government agency, we were provided a few licenses of ArcMap but not enough for our entire team (which ranged from 5-10+ interns at a time) so we used QGIS and other &lt;a href=&quot;https://wiki.osgeo.org/wiki/FOSS4G&quot;&gt;FOSS4G&lt;/a&gt; software to fill in the gaps. But enabling collaborative editing of data in your own office is one thing - but what about opening up contributions from others outside of your office, organization, or even your country? BTW, those aforementioned approaches never really panned out for collaborative editing, until…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enter OpenStreetMap&lt;/strong&gt;: By contributing to OSM, our lab could concurrently edit the database while also benefitting from the crowd-sourced efforts of others around the world. Data can be created, manipulated, and extracted. The map and data &lt;em&gt;we&lt;/em&gt; edit, in turn, are also used by dozens of significant companies and projects. We had  found an ideal workflow for our lab to edit simultaneously, with a low barrier to entry (cost), which also benefitted from the power of crowd-sourcing, and the ability to get the data back out!&lt;/p&gt;

&lt;h2 id=&quot;we-feast&quot;&gt;we feast&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/slo-osm-analytics.gif&quot; alt=&quot;OSM edits from 2009 until now&quot; /&gt; &lt;a href=&quot;http://osm-analytics.org/#/compare/polygon:noh%60V_%7DatEo%7DjGu%7DBvyzCgohDlmfC%7BSbmvAt%7D%40/2009...now/buildings&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now with an idea on how we would proceed, we turned the interns loose. Our first project: building footprints. This project would provide multiple benefits to various users/cooperators.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;The OpenStreetMap project would benefit by us enriching the map.&lt;/li&gt;
  &lt;li&gt;Our job in the GIS lab was to support the firefighters of CAL FIRE/San Luis Obispo County Fire; providing them with increased &lt;a href=&quot;https://en.wikipedia.org/wiki/Situation_awareness&quot;&gt;Situational Awareness&lt;/a&gt; during fire, medical, or rescue responses by having detailed maps.&lt;/li&gt;
  &lt;li&gt;The data we create is immediately viewable on the &lt;a href=&quot;https://openstreetmap.org&quot;&gt;https://openstreetmap.org&lt;/a&gt; map.&lt;/li&gt;
  &lt;li&gt;The data becomes available to the variety of popular services that incorporate OSM data. &lt;em&gt;For example&lt;/em&gt;: &lt;a href=&quot;https://maps.me&quot;&gt;MAPS.ME&lt;/a&gt; was very popular with our field users because of its offline &amp;amp; routing capabilities.&lt;/li&gt;
  &lt;li&gt;The data can be extracted from OSM and converted into various formats for downstream uses/needs. &lt;em&gt;For example&lt;/em&gt;: converting and sharing the data in Esri’s File Geodatabase with our local County cooperators.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We were blessed by the work of the &lt;a href=&quot;https://hotosm.org/&quot;&gt;Humanitarian OpenStreetMap Team&lt;/a&gt; for giving us the &lt;a href=&quot;https://github.com/hotosm/osm-tasking-manager2&quot;&gt;OSM Tasking Manager&lt;/a&gt;. This allowed us to work together in an organized and systematic way while adding our 150,000+ features across 3,300 square miles. It was also a &lt;a href=&quot;http://joelarson.com/openstreetmap/2015/10/13/OSM-Task-Manager.html&quot;&gt;good exercise&lt;/a&gt; for me in learning Ubuntu/Linux and Amazon EC2.&lt;/p&gt;

&lt;p&gt;On a daily basis, this is how the lab would typically operate:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Wire up &lt;a href=&quot;http://wiki.openstreetmap.org/wiki/Quality_assurance#WhoDidIt&quot;&gt;WhoDidIt&lt;/a&gt; to our Chrome &lt;a href=&quot;https://chrome.google.com/webstore/detail/rss-feed-reader/pnjaodmkngahhkoihejjehlcdlnohgmp?hl=en&quot;&gt;RSS Feed Reader&lt;/a&gt; for quality control of the data in our area.&lt;/li&gt;
  &lt;li&gt;Review questionable edits with &lt;a href=&quot;http://wiki.openstreetmap.org/wiki/OSM_History_Viewer&quot;&gt;OSM History Viewer&lt;/a&gt; and/or &lt;a href=&quot;https://github.com/osmlab/osm-deep-history&quot;&gt;osm deep history&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Field verify with GPS units and/then eventually &lt;a href=&quot;http://www.mapillary.com/&quot;&gt;Mapillary&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Utilize the power-editing tools in the JOSM editor. And use JOSM because it rhymes with Jaw-some, go &lt;a href=&quot;https://www.youtube.com/watch?v=NqGQyMF5a_0&quot;&gt;Street Sharks&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/street-sharks.jpg&quot; alt=&quot;A ferocious Street Shark&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;digestifs&quot;&gt;digestifs&lt;/h2&gt;

&lt;p&gt;Sometimes I get a little sad 🙁 when I look at my &lt;a href=&quot;http://hdyc.neis-one.org/?j03lar50n&quot;&gt;How did you contribute to OpenStreetMap?&lt;/a&gt; UserLink, knowing that I’ve probably peaked with the amount of time I can give to editing.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/mapping-days-j03lar50n.png&quot; alt=&quot;mapping days by year for j03lar50n's OSM edits&quot; /&gt;&lt;/p&gt;

&lt;p&gt;But then I try to justify it by telling myself that I’ve taught and trained dozens of others to edit OSM and the efforts are still on-going in the lab - today! I don’t know ¯\_(ツ)_/¯ it is what it is. No ragrets 😉. I should probably just shut up and get back to mapping!&lt;/p&gt;
</description>
        <pubDate>Tue, 17 May 2016 00:00:00 +0000</pubDate>
        <link>http://joelarson.com/openstreetmap/2016/05/17/my-local-osm-story.html</link>
        <guid isPermaLink="true">http://joelarson.com/openstreetmap/2016/05/17/my-local-osm-story.html</guid>
        
        <category>openstreetmap</category>
        
        
        <category>openstreetmap</category>
        
      </item>
    
      <item>
        <title>OSM Task Manager</title>
        <description>&lt;p&gt;&lt;em&gt;I originally wrote this up for an intern who wanted to spin-up their own Task Manager…putting it here, in case others may benefit.&lt;/em&gt; Gist here for comments, etc. &lt;a href=&quot;https://gist.github.com/oeon/a9dd7c4c73691030c135&quot;&gt;https://gist.github.com/oeon/a9dd7c4c73691030c135&lt;/a&gt;.
&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Login&lt;/strong&gt; to &lt;a href=&quot;https://aws.amazon.com/&quot;&gt;https://aws.amazon.com/&lt;/a&gt; &amp;gt; Go to the &lt;strong&gt;Console&lt;/strong&gt; &amp;gt; click &lt;strong&gt;EC2&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Launch Instance&lt;/strong&gt; &amp;gt; Select provided AMI in Quick Start section, for &lt;strong&gt;Ubuntu&lt;/strong&gt; &amp;gt; &lt;strong&gt;t2.micro/free tier eligible&lt;/strong&gt; will work fine…Click the &lt;strong&gt;Review and Launch&lt;/strong&gt; button &amp;gt; accept defaults and click &lt;strong&gt;Launch&lt;/strong&gt; button.&lt;/p&gt;

&lt;p&gt;Create a &lt;strong&gt;new key pair&lt;/strong&gt;, give key pair a &lt;strong&gt;name&lt;/strong&gt; value, &lt;strong&gt;download&lt;/strong&gt; key pair &amp;gt; Click &lt;strong&gt;Launch Instances&lt;/strong&gt; after key pair has downloaded.&lt;/p&gt;

&lt;p&gt;Click &lt;strong&gt;View Instances&lt;/strong&gt; &amp;gt; In EC2 Dashboard, click &lt;strong&gt;Instances&lt;/strong&gt; and first note your &lt;strong&gt;Public IP&lt;/strong&gt; address (write it down), then scroll all the way to the right - click the &lt;em&gt;launch-wizard&lt;/em&gt; link in the &lt;strong&gt;Security Groups&lt;/strong&gt; section &amp;gt; In the &lt;strong&gt;Inbound&lt;/strong&gt; tab &amp;gt; click &lt;strong&gt;Edit&lt;/strong&gt; &amp;gt; &lt;strong&gt;Add Rule&lt;/strong&gt; &amp;gt; &lt;em&gt;Type=’All traffic’, Source=’Anywhere’&lt;/em&gt;, &lt;strong&gt;Save&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Connecting to your server, for Mac and Windows:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(For Mac/Unix)&lt;/strong&gt; Open Terminal.app &amp;gt; alter the permissions of the key, something like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chmod 0600 yourkey.pem&lt;/code&gt;.&lt;br /&gt;
Run something like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ssh -i yourkey.pem ubuntu@12.345.67.89&lt;/code&gt; in your Terminal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(For Windows)&lt;/strong&gt; Download &lt;a href=&quot;http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html&quot;&gt;Putty&lt;/a&gt; if needed. Navigate to where PuTTY is installed in All Programs and open the PuTTYgen utility. Load the .pem file and save as .ppk private key.&lt;/p&gt;

&lt;p&gt;Putty &amp;gt; Connection &amp;gt; SSH &amp;gt; click on Auth section &amp;gt; load private key.&lt;br /&gt;
Click back on Session section and enter your IP address.&lt;br /&gt;
Save Session with a name for quick loading next time.&lt;/p&gt;

&lt;p&gt;The login in username is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ubuntu&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Resume instructions for all operating systems)&lt;/em&gt; after sucessfully connecting to your server via SSH…&lt;/p&gt;

&lt;p&gt;Update/upgrade server with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo apt-get update&lt;/code&gt;, then &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo apt-get upgrade&lt;/code&gt; (accept by pressing Y). If reaching purple screen, accept default choice and press enter.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo apt-get install python-setuptools python-dev libpq-dev apache2 libapache2-mod-wsgi git postgresql-9.3-postgis-2.1&lt;/code&gt;  (accept by pressing Y).&lt;/p&gt;

&lt;p&gt;Now follow setup steps documented at &lt;a href=&quot;https://github.com/hotosm/osm-tasking-manager2&quot;&gt;https://github.com/hotosm/osm-tasking-manager2&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;(hint: right click to paste in PuTTY) enter commands line by line.&lt;/p&gt;

&lt;p&gt;Create &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;local.ini&lt;/code&gt; file with nano e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;nano local.ini&lt;/code&gt;, change &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;PASSWORD&lt;/code&gt; to your password.&lt;/p&gt;

&lt;p&gt;Stop following the steps before the &lt;em&gt;Launch the Application&lt;/em&gt; section.&lt;/p&gt;

&lt;p&gt;Create an Apache config file. Copy the code from here: &lt;a href=&quot;https://github.com/hotosm/osm-tasking-manager2#installation-as-a-mod_wsgi-application&quot;&gt;https://github.com/hotosm/osm-tasking-manager2#installation-as-a-mod_wsgi-application&lt;/a&gt; &amp;gt; Paste into a new file e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo nano /etc/apache2/sites-available/osmtm.conf&lt;/code&gt; be sure to alter the Location (line 13) parameter if you’re serving your app from a URL like &lt;a href=&quot;http://myip.com/osmtm&quot;&gt;http://myip.com/osmtm&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Create a file named &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OSMTM.wsgi&lt;/code&gt; in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/osm-tasking-manager/env&lt;/code&gt; &amp;gt; Copy its contents from &lt;a href=&quot;https://github.com/hotosm/osm-tasking-manager&quot;&gt;https://github.com/hotosm/osm-tasking-manager&lt;/a&gt; but change last line to match &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;osm-tasking-manager2&lt;/code&gt; not &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;osm-tasking-manager&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Execute this series of commands: &lt;br /&gt;
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo a2dissite 000-default&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo a2ensite osmtm&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo service apache2 reload&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Open &lt;a href=&quot;http://your-public-ip/osmtm&quot;&gt;http://your-public-ip/osmtm&lt;/a&gt; e.g. &lt;a href=&quot;http://12.345.67.89/osmtm&quot;&gt;http://12.345.67.89/osmtm&lt;/a&gt; in a web browser. &lt;br /&gt;
profit&lt;/p&gt;
</description>
        <pubDate>Tue, 13 Oct 2015 00:00:00 +0000</pubDate>
        <link>http://joelarson.com/openstreetmap/2015/10/13/OSM-Task-Manager.html</link>
        <guid isPermaLink="true">http://joelarson.com/openstreetmap/2015/10/13/OSM-Task-Manager.html</guid>
        
        <category>openstreetmap</category>
        
        
        <category>openstreetmap</category>
        
      </item>
    
      <item>
        <title>Florence &amp; Edison, 2014 Landsat</title>
        <description>&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/aXJiAfr.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Continuing upon &lt;a href=&quot;http://joelarson.com/landsat/2014/12/07/landsat-animation/&quot;&gt;my last post&lt;/a&gt; using landsat-util and animating Landsat scenes - I took a look at path 42 row 34, where &lt;a href=&quot;https://www.openstreetmap.org/#map=12/37.3249/-118.9845&quot;&gt;Florence and Lake Thomas Edison&lt;/a&gt; lie in the Sierra Nevadas of Central California.&lt;/p&gt;

&lt;p&gt;I browsed &lt;a href=&quot;http://earthexplorer.usgs.gov/&quot;&gt;EarthExplorer&lt;/a&gt; and copied the scenes I wanted.&lt;/p&gt;

&lt;p&gt;path 42 row 34&lt;br /&gt;
LC80420342014015LGN00 01-15-14&lt;br /&gt;
LC80420342014047LGN00 02-16-14&lt;br /&gt;
LC80420342014079LGN00 03-20-14&lt;br /&gt;
LC80420342014095LGN00 04-05-14&lt;br /&gt;
LC80420342014143LGN00 05-23-14&lt;br /&gt;
LC80420342014175LGN00 06-24-14&lt;br /&gt;
LC80420342014207LGN00 07-26-14&lt;br /&gt;
LC80420342014239LGN00 08-27-14&lt;br /&gt;
LC80420342014255LGN00 09-12-14&lt;br /&gt;
LC80420342014287LGN00 10-14-14&lt;br /&gt;
LC80420342014319LGN00 11-15-14&lt;br /&gt;
LC80420342014335LGN00 12-01-14&lt;/p&gt;

&lt;p&gt;To download all scenes at once, with landsat-util already installed - run:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;landsat download LC80420342014015LGN00 &amp;amp;&amp;amp; landsat download LC80420342014047LGN00 &amp;amp;&amp;amp; landsat download LC80420342014079LGN00 &amp;amp;&amp;amp; landsat download LC80420342014095LGN00 &amp;amp;&amp;amp; landsat download LC80420342014143LGN00 &amp;amp;&amp;amp; landsat download LC80420342014175LGN00 &amp;amp;&amp;amp; landsat download LC80420342014207LGN00 &amp;amp;&amp;amp; landsat download LC80420342014239LGN00 &amp;amp;&amp;amp; landsat download LC80420342014255LGN00 &amp;amp;&amp;amp; landsat download LC80420342014287LGN00 &amp;amp;&amp;amp; landsat download LC80420342014319LGN00 &amp;amp;&amp;amp; landsat download LC80420342014335LGN00
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Process them all, takes a while - even longer if you pan-sharpen:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;landsat process ~/landsat/zip/LC80420342014015LGN00.tar.bz &amp;amp;&amp;amp; landsat process ~/landsat/zip/LC80420342014047LGN00.tar.bz &amp;amp;&amp;amp; landsat process ~/landsat/zip/LC80420342014079LGN00.tar.bz &amp;amp;&amp;amp; landsat process ~/landsat/zip/LC80420342014095LGN00.tar.bz &amp;amp;&amp;amp; landsat process ~/landsat/zip/LC80420342014143LGN00.tar.bz &amp;amp;&amp;amp; landsat process ~/landsat/zip/LC80420342014175LGN00.tar.bz &amp;amp;&amp;amp; landsat process ~/landsat/zip/LC80420342014207LGN00.tar.bz &amp;amp;&amp;amp; landsat process ~/landsat/zip/LC80420342014239LGN00.tar.bz &amp;amp;&amp;amp; landsat process ~/landsat/zip/LC80420342014255LGN00.tar.bz &amp;amp;&amp;amp; landsat process ~/landsat/zip/LC80420342014287LGN00.tar.bz &amp;amp;&amp;amp; landsat process ~/landsat/zip/LC80420342014319LGN00.tar.bz &amp;amp;&amp;amp; landsat process ~/landsat/zip/LC80420342014335LGN00.tar.bz
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You could make those bash scripts and run both like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;./download.sh &amp;amp;&amp;amp; ./process.sh&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Next is the clip, label and gif combo. I run these from the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;processed&lt;/code&gt; folder that landsat-util created.&lt;/p&gt;

&lt;h3 id=&quot;clipsh&quot;&gt;clip.sh&lt;/h3&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#!/bin/bash
mkdir clip
for i in $(find . -name &quot;*.TIF&quot; -type f)
do
  dir=&quot;$(dirname ${i#./})&quot;
  gdal_translate -projwin -13264761 4497519 -13225720 4470697 -of GTiff $i clip/$dir&quot;-clip.tif&quot;
done
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Of course you’ll want your own clip area. BYO bbox. Bring your own projwin. Maybe you’ll use QGIS like me, if so - be sure to swap the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uly&lt;/code&gt; &amp;amp; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;lry&lt;/code&gt; coordinates. &lt;img src=&quot;http://i.imgur.com/rF2tnc1.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;labelsh&quot;&gt;label.sh&lt;/h3&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#!/bin/bash
mkdir gif
mogrify -format gif clip/*.tif
convert clip/LC80420342014015LGN00-clip.gif -fill rgba\(255,255,255,0.6\) -gravity NorthWest -pointsize 65 -annotate +5+5 'January' gif/01jan.gif
convert clip/LC80420342014047LGN00-clip.gif -fill rgba\(255,255,255,0.6\) -gravity NorthWest -pointsize 65 -annotate +5+5 'February' gif/02feb.gif
convert clip/LC80420342014079LGN00-clip.gif -fill rgba\(255,255,255,0.6\) -gravity NorthWest -pointsize 65 -annotate +5+5 'March' gif/03mar.gif
convert clip/LC80420342014095LGN00-clip.gif -fill rgba\(255,255,255,0.6\) -gravity NorthWest -pointsize 65 -annotate +5+5 'April' gif/04apr.gif
convert clip/LC80420342014143LGN00-clip.gif -fill rgba\(255,255,255,0.6\) -gravity NorthWest -pointsize 65 -annotate +5+5 'May' gif/05may.gif
convert clip/LC80420342014175LGN00-clip.gif -fill rgba\(255,255,255,0.6\) -gravity NorthWest -pointsize 65 -annotate +5+5 'June' gif/06jun.gif
convert clip/LC80420342014207LGN00-clip.gif -fill rgba\(255,255,255,0.6\) -gravity NorthWest -pointsize 65 -annotate +5+5 'July' gif/07jul.gif
convert clip/LC80420342014239LGN00-clip.gif -fill rgba\(255,255,255,0.6\) -gravity NorthWest -pointsize 65 -annotate +5+5 'August' gif/08aug.gif
convert clip/LC80420342014255LGN00-clip.gif -fill rgba\(255,255,255,0.6\) -gravity NorthWest -pointsize 65 -annotate +5+5 'September' gif/09sep.gif
convert clip/LC80420342014287LGN00-clip.gif -fill rgba\(255,255,255,0.6\) -gravity NorthWest -pointsize 65 -annotate +5+5 'October' gif/10oct.gif
convert clip/LC80420342014319LGN00-clip.gif -fill rgba\(255,255,255,0.6\) -gravity NorthWest -pointsize 65 -annotate +5+5 'November' gif/11nov.gif
convert clip/LC80420342014335LGN00-clip.gif -fill rgba\(255,255,255,0.6\) -gravity NorthWest -pointsize 65 -annotate +5+5 'December' gif/12dec.gif
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;gifsh&quot;&gt;gif.sh&lt;/h3&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#!/bin/bash
gifsicle gif/*.gif &amp;gt; anim.gif
gifsicle --loop=0 --delay=150 --colors 256 gif/*.gif &amp;gt; anim.gif
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;All together now &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;./clip.sh &amp;amp;&amp;amp; ./label.sh &amp;amp;&amp;amp; ./gif.sh&lt;/code&gt;. Yes, this could be more efficient but who knows your skill level…you may even want to &lt;a href=&quot;http://peakgis.com/2013/10/02/batch-clipping-multiple-rasters-in-qgis-a-very-basic-approach-to-a-repetitive-process/&quot;&gt;build your scripts in a spreadsheet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bonus&lt;/strong&gt;: Lake Oroville, California (2014) pansharpened &lt;a href=&quot;http://i.imgur.com/biRxZqG.gif&quot;&gt;http://i.imgur.com/biRxZqG.gif&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Tue, 09 Dec 2014 00:00:00 +0000</pubDate>
        <link>http://joelarson.com/2014/12/09/florence-edison-2014-landsat.html</link>
        <guid isPermaLink="true">http://joelarson.com/2014/12/09/florence-edison-2014-landsat.html</guid>
        
        <category>landsat</category>
        
        <category>drought</category>
        
        <category>california</category>
        
        
      </item>
    
      <item>
        <title>Landsat animation</title>
        <description>&lt;p&gt;2014 &lt;a href=&quot;http://www.openstreetmap.org/#map=12/35.7432/-120.9483&quot;&gt;Lake Nacimiento&lt;/a&gt; in San Luis Obispo County - California&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/s7ukngS.gif&quot; alt=&quot;Lake Nacimiento animation&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Inspired by: &lt;a href=&quot;https://twitter.com/developmentseed/status/539831619000217600&quot;&gt;https://twitter.com/developmentseed/status/539831619000217600&lt;/a&gt; I wanted to play with some Landsat data to see if I could do a time series animation for 2014 to see if Central California’s recent drought could be effectively visualized. You can see some subtle shrinking of the ‘&lt;a href=&quot;http://en.wikipedia.org/wiki/Lake_Nacimiento&quot;&gt;Dragon Lake&lt;/a&gt;’ …which is not as dramatic as Folsom or Shasta reservoirs, but still apparent.&lt;/p&gt;

&lt;p&gt;It took a bit of time downloading &amp;amp; processing (&lt;em&gt;pan-sharpening took about 50-60 minutes on my MacBook pro&lt;/em&gt;) and space (10GB+ for 11 scenes). My process could definitely be more scripted/streamlined. But I had fun and learned a few things :)&lt;/p&gt;

&lt;h3 id=&quot;using-landsat-util&quot;&gt;using landsat-util&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/developmentseed/landsat-util&quot;&gt;https://github.com/developmentseed/landsat-util&lt;/a&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;landsat process --pansharpen LC80430352014022LGN00.tar.gz
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;clip&quot;&gt;clip&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;rename first, e.g. 4310final-pan.TIF&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#!/bin/bash
gdal_translate -projwin -13475810.0 4270507.0 -13455685.0 4256681.0 -of GTiff ~/landsat/processed/LC80430352014310LGN00/4310final-pan.TIF ~/landsat/processed/4310final-pan-clip.TIF
gdal_translate -projwin -13475810.0 4270507.0 -13455685.0 4256681.0 -of GTiff ~/landsat/processed/LC80430352014294LGN00/4294final-pan.TIF ~/landsat/processed/4294final-pan-clip.TIF
gdal_translate -projwin -13475810.0 4270507.0 -13455685.0 4256681.0 -of GTiff ~/landsat/processed/LC80430352014262LGN00/4262final-pan.TIF ~/landsat/processed/4262final-pan-clip.TIF
gdal_translate -projwin -13475810.0 4270507.0 -13455685.0 4256681.0 -of GTiff ~/landsat/processed/LC80430352014214LGN00/4214final-pan.TIF ~/landsat/processed/4214final-pan-clip.TIF
gdal_translate -projwin -13475810.0 4270507.0 -13455685.0 4256681.0 -of GTiff ~/landsat/processed/LC80430352014198LGN00/4198final-pan.TIF ~/landsat/processed/4198final-pan-clip.TIF
gdal_translate -projwin -13475810.0 4270507.0 -13455685.0 4256681.0 -of GTiff ~/landsat/processed/LC80430352014166LGN00/4166final-pan.TIF ~/landsat/processed/4166final-pan-clip.TIF
gdal_translate -projwin -13475810.0 4270507.0 -13455685.0 4256681.0 -of GTiff ~/landsat/processed/LC80430352014134LGN00/4134final-pan.TIF ~/landsat/processed/4134final-pan-clip.TIF
gdal_translate -projwin -13475810.0 4270507.0 -13455685.0 4256681.0 -of GTiff ~/landsat/processed/LC80430352014118LGN00/4118final-pan.TIF ~/landsat/processed/4118final-pan-clip.TIF
gdal_translate -projwin -13475810.0 4270507.0 -13455685.0 4256681.0 -of GTiff ~/landsat/processed/LC80430352014070LGN00/4070final-pan.TIF ~/landsat/processed/4070final-pan-clip.TIF
gdal_translate -projwin -13475810.0 4270507.0 -13455685.0 4256681.0 -of GTiff ~/landsat/processed/LC80430352014054LGN00/4054final-pan.TIF ~/landsat/processed/4054final-pan-clip.TIF
gdal_translate -projwin -13475810.0 4270507.0 -13455685.0 4256681.0 -of GTiff ~/landsat/processed/LC80430352014022LGN00/4022final-pan.TIF ~/landsat/processed/4022final-pan-clip.TIF
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;convert&quot;&gt;convert&lt;/h3&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;mogrify -format gif *.TIF
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;label&quot;&gt;label&lt;/h3&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#!/bin/bash
convert 4022final-pan-clip.gif -fill rgba\(255,255,255,0.5\) -gravity North -pointsize 65 -annotate +0+5 'January 22' gifify/01jan.gif
convert 4054final-pan-clip.gif -fill rgba\(255,255,255,0.5\) -gravity North -pointsize 65 -annotate +0+5 'February 23' gifify/02feb.gif
convert 4070final-pan-clip.gif -fill rgba\(255,255,255,0.5\) -gravity North -pointsize 65 -annotate +0+5 'March 11' gifify/03mar.gif
convert 4118final-pan-clip.gif -fill rgba\(255,255,255,0.5\) -gravity North -pointsize 65 -annotate +0+5 'April 28' gifify/04apr.gif
convert 4134final-pan-clip.gif -fill rgba\(255,255,255,0.5\) -gravity North -pointsize 65 -annotate +0+5 'May 14' gifify/05may.gif
convert 4166final-pan-clip.gif -fill rgba\(255,255,255,0.5\) -gravity North -pointsize 65 -annotate +0+5 'June 15' gifify/06jun.gif
convert 4198final-pan-clip.gif -fill rgba\(255,255,255,0.5\) -gravity North -pointsize 65 -annotate +0+5 'July 17' gifify/07jul.gif
convert 4214final-pan-clip.gif -fill rgba\(255,255,255,0.5\) -gravity North -pointsize 65 -annotate +0+5 'August 02' gifify/08aug.gif
convert 4262final-pan-clip.gif -fill rgba\(255,255,255,0.5\) -gravity North -pointsize 65 -annotate +0+5 'September 19' gifify/09sep.gif
convert 4294final-pan-clip.gif -fill rgba\(255,255,255,0.5\) -gravity North -pointsize 65 -annotate +0+5 'October 21' gifify/10oct.gif
convert 4310final-pan-clip.gif -fill rgba\(255,255,255,0.5\) -gravity North -pointsize 65 -annotate +0+5 'November 06' gifify/11nov.gif
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;gif-ify&quot;&gt;gif-ify&lt;/h3&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#!/bin/bash
gifsicle *.gif &amp;gt; anim.gif
gifsicle --loop=0 --delay=150 --colors 256 *.gif &amp;gt; anim.gif
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;fin&quot;&gt;fin&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;notes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;path 43 row 35&lt;br /&gt;
LC80430352014022LGN00 22-JAN-14&lt;br /&gt;
LC80430352014054LGN00 23-FEB-14&lt;br /&gt;
LC80430352014070LGN00 11-MAR-14&lt;br /&gt;
LC80430352014118LGN00 28-APR-14&lt;br /&gt;
LC80430352014134LGN00 14-MAY-14&lt;br /&gt;
LC80430352014166LGN00 15-JUN-14&lt;br /&gt;
LC80430352014198LGN00 17-JUL-14&lt;br /&gt;
LC80430352014214LGN00 02-AUG-14&lt;br /&gt;
LC80430352014262LGN00 19-SEP-14&lt;br /&gt;
LC80430352014294LGN00 21-OCT-14&lt;br /&gt;
LC80430352014310LGN00 06-NOV-14&lt;/p&gt;
</description>
        <pubDate>Sun, 07 Dec 2014 00:00:00 +0000</pubDate>
        <link>http://joelarson.com/landsat/2014/12/07/landsat-animation.html</link>
        <guid isPermaLink="true">http://joelarson.com/landsat/2014/12/07/landsat-animation.html</guid>
        
        <category>landsat</category>
        
        <category>drought</category>
        
        <category>california</category>
        
        
        <category>landsat</category>
        
      </item>
    
      <item>
        <title>Landsat Pan Sharpening And Processing</title>
        <description>&lt;p&gt;&lt;strong&gt;tl;dr&lt;/strong&gt; MapBox has some nice material on using Landsat 8 imagery. Without previous experience processing Landsat data, I used stuff learned from four of their blog posts. Here are some of &lt;a href=&quot;https://gist.github.com/oeon/8007457&quot;&gt;my notes&lt;/a&gt;, images and &lt;a href=&quot;http://joelarson.com/harmony-landsat/map.html&quot;&gt;a map&lt;/a&gt; of some local, recent Landsat imagery…nothing crazy, just a little do-it-yourself red-green-blue, false-color and color-infrared.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/j03lar50n/11415201475&quot; title=&quot;Avenal, CA&quot;&gt;&lt;img src=&quot;http://farm3.staticflickr.com/2871/11415201475_b84df2f585.jpg&quot; width=&quot;500&quot; height=&quot;500&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Initial inspiration came from &lt;a href=&quot;https://www.mapbox.com/about/team/#charlie-loyd&quot;&gt;Charlie’s&lt;/a&gt; two posts this summer - &lt;a href=&quot;https://www.mapbox.com/blog/putting-landsat-8-bands-to-work/&quot; title=&quot;Putting Landsat 8’s Bands to Work&quot;&gt;Putting Landsat 8’s Bands to Work&lt;/a&gt; and &lt;a href=&quot;https://www.mapbox.com/blog/processing-landsat-8/&quot; title=&quot;Processing Landsat 8 Using Open-Source Tools&quot;&gt;Processing Landsat 8 Using Open-Source Tools&lt;/a&gt;. Pansharpening gets you 15 meter resolution and &lt;a href=&quot;https://www.mapbox.com/about/team/#chris-herwig&quot;&gt;Chris&lt;/a&gt; wrote the &lt;a href=&quot;https://www.mapbox.com/blog/pansharpening-satellite-imagery-openstreetmap/&quot;&gt;main steps involved&lt;/a&gt; in pansharpening with Orfeo Toolbox and GDAL.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/j03lar50n/11414378274/&quot; title=&quot;salinas-false by j03lar50n, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.staticflickr.com/3818/11414378274_abe403192a_c.jpg&quot; width=&quot;800&quot; height=&quot;493&quot; alt=&quot;salinas-false&quot; /&gt;&lt;/a&gt; &amp;lt;p align=&quot;center&quot;&amp;gt;&lt;small&gt;December 5, 2013 Salinas, CA. False-color combination of NIR, SWIR, and visible red, using bands 5, 6, and 4 + pansharpened, Landsat 8.&lt;/small&gt;&amp;lt;/p&amp;gt;&lt;/p&gt;

&lt;p&gt;I used Mac OS X and was hoping to evoke &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;otbcli&lt;/code&gt; from Terminal command line. Thinking I could install Orfeo via Homebrew - it seems at the writing of this post there are various issues with &lt;em&gt;homebrewed&lt;/em&gt; Orfeo/Mountain Lion. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;otbcli&lt;/code&gt; is contained within Monteverdi toolbox and I could probably access the applications/utilities from there but I already had QGIS installed and they were available from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/Applications/QGIS.app/Contents/MacOS/bin/&lt;/code&gt; on my system, so I used those.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/j03lar50n/11414215945/&quot; title=&quot;hh-testburn and estero by j03lar50n, on Flickr&quot;&gt;&lt;img src=&quot;http://farm6.staticflickr.com/5491/11414215945_41bdf6afa1_c.jpg&quot; width=&quot;800&quot; height=&quot;500&quot; alt=&quot;hh-testburn and estero&quot; /&gt;&lt;/a&gt; &amp;lt;p align=&quot;center&quot;&amp;gt;&lt;small&gt;Upper left, Harmony Headlands prescribed burn &lt;em&gt;just&lt;/em&gt; getting underway - note the strong offshore winds pushing the smoke southwest. Lower right, Estero rx-burn from November. Image date: December 5, 2013.&lt;/small&gt;&amp;lt;/p&amp;gt;&lt;/p&gt;

&lt;p&gt;Chris’s post involves GeoEye imagery, the code is pretty much he same if you use Landsat except I used &lt;a href=&quot;https://github.com/dwtkns/gdal-cheat-sheet/blob/master/README.md#raster-operations&quot;&gt;this snippet&lt;/a&gt; from &lt;a href=&quot;https://github.com/dwtkns&quot;&gt;Derek&lt;/a&gt; for converting 16-bit bands (UInt16) to Byte type &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gdal_translate -ot Byte -scale 0 65535 0 255 -a_nodata &quot;0 0 0&quot; pansharp.tif pansharp-scaled.tif &lt;/code&gt; (only parameter that’s different is the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scale&lt;/code&gt; value was 3000).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/j03lar50n/11413962596/&quot; title=&quot;paso-rgb by j03lar50n, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.staticflickr.com/3811/11413962596_08176a44b6_b.jpg&quot; width=&quot;800&quot; height=&quot;600&quot; alt=&quot;paso-rgb&quot; /&gt;&lt;/a&gt; &amp;lt;p align=&quot;center&quot;&amp;gt;&lt;small&gt;&lt;em&gt;Wine country, San Luis Obispo County. You can see hints of red as the grape vines lose their leaves.&lt;/em&gt;&lt;/small&gt;&amp;lt;/p&amp;gt;&lt;/p&gt;

&lt;p&gt;I ended up using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;convert -monitor -sigmoidal-contrast 50x12% RGB.tif RGB-corrected.tif&lt;/code&gt; for my regular Red-Green-Blue. And &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;convert -monitor -sigmoidal-contrast 33x12% pansharp_3857.tif pansharp_3857-bright.tif&lt;/code&gt; for my pansharpened stuff. For those keeping count of those four MapBox posts I mentioned, the last honorable mention is from &lt;a href=&quot;https://www.mapbox.com/blog/processing-rapideye-imagery/&quot;&gt;Processing RapidEye Imagery in Minutes&lt;/a&gt; where I used &lt;em&gt;“GDAL one last time to bundle the adjusted image data and the geographical information into a geotiff”&lt;/em&gt;. Again, jotted &lt;a href=&quot;https://gist.github.com/oeon/8007457&quot;&gt;my steps here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/j03lar50n/11414557835/&quot; title=&quot;slo-cir&quot;&gt;&lt;img src=&quot;http://farm6.staticflickr.com/5528/11414557835_0df81db55d_c.jpg&quot; width=&quot;800&quot; height=&quot;448&quot; alt=&quot;slo-cir&quot; /&gt;&lt;/a&gt; &amp;lt;p align=&quot;center&quot;&amp;gt;&lt;small&gt;City of San Luis Obispo and Santa Margarita lake, color-infrared.&lt;/small&gt;&amp;lt;/p&amp;gt;&lt;/p&gt;

&lt;p&gt;It &lt;strong&gt;does&lt;/strong&gt; take a bit of tweaking the contrast and brightness but I was happy enough with these quick results. Next, I’d like to recreate the &lt;a href=&quot;http://www.fs.fed.us/eng/rsac/baer/barc.html&quot;&gt;Burned Area Reflectance Classification&lt;/a&gt; workflow. Also, more learning about Band Math, bit depth and which tool / which task for weilding Orfeo/ImageMagick/GDAL/? would be good. Check out band combinations for Landsat 8 &lt;a href=&quot;http://landsat.usgs.gov/L8_band_combos.php&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: A wiseman (Charlie) advised a couple things - &lt;em&gt;“Always be a little careful pansharpening false color. The pan band only covers the RGB range, so to the extent that the other bands don’t positively correlate with it, it’s theoretically possible for it to distort their values.”&lt;/em&gt; And also, ImageMagick’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-combine&lt;/code&gt; flag doesn’t work correctly without a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-colorspace RGB&lt;/code&gt; flag accompanying it (for some users) .. so heads-up!&lt;/p&gt;

&lt;p&gt;Thank you kind internet people who put material out there for people to follow. Without much experience using remote sensing imagery or tools and this is a great way to get your feet wet. Again, &lt;a href=&quot;http://joelarson.com/harmony-landsat/map.html&quot;&gt;the map&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Tue, 17 Dec 2013 00:00:00 +0000</pubDate>
        <link>http://joelarson.com/landsat/2013/12/17/landsat-pan-sharpening-and-processing.html</link>
        <guid isPermaLink="true">http://joelarson.com/landsat/2013/12/17/landsat-pan-sharpening-and-processing.html</guid>
        
        <category>remote sensing</category>
        
        <category>landsat</category>
        
        <category>landsat8</category>
        
        <category>open source</category>
        
        
        <category>landsat</category>
        
      </item>
    
      <item>
        <title>Esri TMS for OSM</title>
        <description>&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/j03lar50n/10079654826/&quot; title=&quot;Untitled by j03lar50n, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.staticflickr.com/3832/10079654826_f9d47d0bc0.jpg&quot; width=&quot;500&quot; height=&quot;375&quot; alt=&quot;Untitled&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;I wanted to log my efforts connecting to an Esri ArcGIS Server (AGS) raster layer / TMS-like tile service from JOSM and iD OpenStreetMap Editors. I didn’t see much material out-there, specifically for AGS, so maybe someone else will find this useful.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://joelarson.com/work/2013/09/10/cuttin-tiles/&quot;&gt;Previously&lt;/a&gt;, I wrote about cutting tiles for consumption via TMS…one method to share that gdal2tiles output is via Amazon S3. For example, a US Standard (region) bucket named ‘&lt;em&gt;tile-demo&lt;/em&gt;’ connection URL for iD is: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://s3.amazonaws.com/tile-demo/{z}/{x}/{-y}.png&lt;/code&gt;. Thank goodness one can pass &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-y&lt;/code&gt; instead of running a script to &lt;a href=&quot;https://gist.github.com/oeon/6801339&quot;&gt;rename TMS layout to Google layout&lt;/a&gt; on 6 million tiles.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/j03lar50n/10079499413/&quot; title=&quot;tiles_z19size_total by j03lar50n, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7301/10079499413_728377cf85_o.jpg&quot; width=&quot;237&quot; height=&quot;73&quot; alt=&quot;tiles_z19size_total&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another option you may encounter is tiles available from an ArcGIS tile cache (is that the right term?). Here’s how I got there, provided your source also publishes the imagery under an appropriate license &amp;amp; in web mercator, EPSG 3857.&lt;/p&gt;

&lt;p&gt;REST resource URL: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://gis.yourcounty.ca.gov/arcgis/rest/services&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;for iD: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://gis.yourcounty.ca.gov/arcgis/rest/services/Aerials/2014_1_FT_AERIAL/MapServer/tile/{z}/{y}/{x}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;for JOSM, use ‘zoom’ instead of ‘z’: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://gis.yourcounty.ca.gov/arcgis/rest/services/Aerials/2014_1_FT_AERIAL/MapServer/tile/{zoom}/{y}/{x}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I didn’t need to specify image filetype in the URL&lt;/em&gt; e.g. &lt;em&gt;.jpg&lt;/em&gt; / &lt;em&gt;.png&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So, if you have something like that available in your area - and it’s better quality/resolution that Bing .. try out those custom sources templates as base imagery during your OpenStreetMap editing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: Ian Dees replied, “Another option is to use the WMS endpoint that ships with all MapServer instances with JOSM’s WMS code. OSM US can also proxy.” see &lt;a href=&quot;https://twitter.com/iandees/status/386150404737622016&quot;&gt;https://twitter.com/iandees/status/386150404737622016&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Wed, 02 Oct 2013 00:00:00 +0000</pubDate>
        <link>http://joelarson.com/openstreetmap/2013/10/02/esri-tms-for-osm.html</link>
        <guid isPermaLink="true">http://joelarson.com/openstreetmap/2013/10/02/esri-tms-for-osm.html</guid>
        
        <category>tms</category>
        
        <category>openstreetmap</category>
        
        <category>esri</category>
        
        <category>arcgis server</category>
        
        
        <category>openstreetmap</category>
        
      </item>
    
  </channel>
</rss>
