<?xml version="1.0"?>
<feed xmlns="http://purl.org/atom/ns#" xmlns:ent="http://www.purl.org/NET/ENT/1.0/" version="1.0">
 <title>Russ Nelson : gis</title>
 <link rel="alternate" type="text/html" href="http://blog.russnelson.com/gis/index.atom" />
<!-- <modified></modified> -->
 <!-- optional elements -->
 <tagline></tagline>
 <generator name="pyblosxom 0.8rc1">http://roughingit.subtlehints..net/pyblosxom</generator>
 <entry>
  <title>World Wind and shapefiles</title>
  <summary></summary>
  <author>
   <name></name>
   <url>http://blog.russnelson.com</url>
  </author>
  <link rel="alternate" type="text/html" href="http://blog.russnelson.com/2006/02/25#ww-and-shapefiles" />  <id>http://blog.russnelson.com/2006/02/25#ww-and-shapefiles</id>
  <created>2006-02-26T03:14:44Z</created>
  <issued>2006-02-26T03:14:44Z</issued>
  <modified>2006-02-26T03:14:44Z</modified>
  <content type="text/html" mode="escaped" xml:lang="en-us">
   
&lt;p&gt;How should NASA&apos;s &lt;a href=&quot;http://worldwindcentral.com/&quot;&gt;World
Wind&lt;/a&gt; handle the introduction of a shapefile layer?  Well, I can
think of two reasonable ways to do this.

&lt;ol&gt;

&lt;li&gt;somewhere there exists a .zip file containing the three component
files of the shapefile.  A third party has written an XML which
describes how they want that shapefile drawn (e.g. with and without
labels).  Their XML file specifies the URL of the shapefile.&lt;/li&gt;

&lt;li&gt;somebody wants to publish a shapefile directly usable by WW.  They
create the .zip with the three shapefile files, and add to it the .xml
needed by WW.&lt;/li.

&lt;/ol&gt;&lt;/p&gt;

&lt;p&gt;I can think of only one benefit to #2: you don&apos;t have to deal with
telling your webserver that a .xml file is an XML file rather than
some kind of mutant HTML.  A big advantage of #1 is that anybody can
describe anybody else&apos;s file for use in WW, *and* they don&apos;t have to
host that shapefile.&lt;/p&gt;

&lt;p&gt;We could support both formats, of course.  If you tell WW to use a
shapefile, WW could look at the filetype / extension.  If it&apos;s XML,
then the XML specifies the shapefile with a URL.  If it&apos;s .zip, then
the .zip contains the XML file.&lt;/p&gt;

&lt;p&gt;Now, the second question is how to handle versions.  Is there any
reason to keep permanently a shapefile given that WW doesn&apos;t
permanently keep any imagery data?  Basically, WW is an online data
viewer and only caches imagery data.  Why should it save a shapefile?
Thus, whenever you turn on a shapefile, WW should re-fetch the
shapefile (checking the HEAD just as a web browser does).  If somebody
*really* wants to display local data, they can specify file:// as the
URL.&lt;/p&gt;


   
  </content> 
 </entry>
 <entry>
  <title>LatLonUTMconversion</title>
  <summary></summary>
  <author>
   <name></name>
   <url>http://blog.russnelson.com</url>
  </author>
  <link rel="alternate" type="text/html" href="http://blog.russnelson.com/2005/03/17#lat-lon-utm" />  <id>http://blog.russnelson.com/2005/03/17#lat-lon-utm</id>
  <created>2005-03-17T22:51:17Z</created>
  <issued>2005-03-17T22:51:17Z</issued>
  <modified>2005-03-17T22:51:17Z</modified>
  <content type="text/html" mode="escaped" xml:lang="en-us">
   
&lt;p&gt;I&apos;ve been doing a lot of work lately on mapping.  If you go look at
the &lt;a href=&quot;/bicycling/&quot;&gt;bicycling&lt;/a&gt; category, you&apos;ll see some of it.
I need to improve the programs that make those maps, but once I&apos;m satisfied
with them I&apos;ll publish them here.  Most generally I want to do GIS-style
analysis of maps, only without using a GIS package.  The most capable
open source GIS package is GRASS, but it has an incredibly steep
learning curve.  I&apos;ve tried to learn to use it twice now, and can&apos;t
get up the slope.  It&apos;s easier to write my own software than to learn
to use GRASS.  So that&apos;s what I&apos;m doing, and you&apos;ll find all of my
Python GIS software at &lt;a href=&quot;http://pygps.org/&quot;&gt;pygps&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In particular, today I&apos;m releasing the LatLonUTMconversation library.
It converts (predictably enough) between latitude and longitude and
UTM coordinates.  A GPS receiver will give you lat/lon, but UTM
(Universal Transverse Mercator) coordinates are more useful.  For one,
you can compute distances using them, since each integer UTM tick is one
meter.  For another, you can locate a point on a map by simple subtraction
and division by the scale of the map.&lt;/p&gt;

   
  </content> 
 </entry>
 <entry>
  <title>Color Ortho Quads in NY</title>
  <summary></summary>
  <author>
   <name></name>
   <url>http://blog.russnelson.com</url>
  </author>
  <link rel="alternate" type="text/html" href="http://blog.russnelson.com/2005/03/13#ny-color-quads" />  <id>http://blog.russnelson.com/2005/03/13#ny-color-quads</id>
  <created>2005-03-13T16:31:42Z</created>
  <issued>2005-03-13T16:31:42Z</issued>
  <modified>2005-03-13T16:31:42Z</modified>
  <content type="text/html" mode="escaped" xml:lang="en-us">
   
&lt;p&gt;I recently found out that (somebody) created color orthographic
quads of New York State.  Look for &lt;a
href=&quot;ftp://www.nysgis.state.ny.us/pub/nysdop1&quot;&gt;your county&lt;/a&gt; on the
&lt;a href=&quot;http://www.nysgis.state.ny.us/&quot;&gt;NYS GIS&lt;/a&gt; site.  Naturally,
instead of publishing them in a lossless open format, they&apos;re
published in the proprietary MrSID format.  This is a wavelet form of
compression similar to JPEG2000.  There&apos;s a decoder called mrsiddecode
which creates .tiff or .jpg files as you wish.&lt;/p&gt;

&lt;p&gt;I&apos;m in St. Lawrence County (below left).  They have complete
coverage for 60&lt;abbr title=&quot;centimeters per pixel&quot;&gt;cmpp&lt;/abbr&gt;
colorized infrared (cir) quads (below middle).  Unfortunately, they
only have partial coverage for 30cmpp color quads (below right).  For
St. Lawrence County, they only cover Potsdam, Canton, Massena and
Ogdensburgh.  A friend of mine, Simon St.Laurent, is another map geek.
He &lt;a href=&quot;http://livingindryden.org/&quot;&gt;lives in Dryden, NY&lt;/a&gt;,
located in Tompkins County.  I notice that &lt;a
href=&quot;ftp://www.nysgis.state.ny.us/pub/nysdop1/tompkins/utm/tiles&quot;&gt;Tompkins
only has&lt;/a&gt; 30cm cir &lt;em&gt;and&lt;/em&gt; 20cm cir coverage, and no color quads at
all.  So apparently the phrase &quot;your mileage may vary&quot; applies in
spades.

&lt;br&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a
href=&quot;http://mapper.acme.com/?lat=44.523633&amp;long=-75.167922&amp;scale=16&amp;theme=Topo&amp;width=8&amp;height=9&quot;
border=&quot;0&quot;&gt;&lt;img src=&quot;/images/stlawco.jpg&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a
href=&quot;/images/ir-coverage.jpg&quot; border=&quot;0&quot;&gt;&lt;img
src=&quot;/images/ir-coverage-tn.jpg&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a
href=&quot;/images/color-coverage.jpg&quot; border=&quot;0&quot;&gt;&lt;img
src=&quot;/images/color-coverage-tn.jpg&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;

&lt;p&gt;In order to use those images, I turned them into 200x200 pixel
tiles similar to those published by &lt;a
href=&quot;http://www.terraserver-usa.com/&quot;&gt;Terraserver&lt;/a&gt;.  Those tiles
get thrown into an in-filesystem database which is a sparse local copy
of Terraserver.  Whenever any of my &lt;a
href=&quot;http://pygps.org/&quot;&gt;mapping software&lt;/a&gt; fetches a map from
terraserver, it populates the database with it.  I&apos;ve only published
pygps and mapview.  I haven&apos;t yet published maptracks (makes a map
with a GPS track overlaid), make-tiles (which splits up the color
ortho quads), nor make-tiles-index (which creates the coverage
maps above).  They need improvement before they&apos;re seriously
usable.&lt;/p&gt;

&lt;p&gt;These datasets get very large, by the way.  I&apos;ve recently
discovered the magic of external hard drives using USB 2.0.  I picked
up a 120GB Western Digital drive from Office Max for $60.  The ortho
quads amount to 3.9GB, but if you uncompress them all to .tiffs,
you&apos;ll fill up all 120GB.  I need to uncompress on the fly with
make-tiles.&lt;/p&gt;


   
  </content> 
 </entry>
</feed>