Elijah Robison   |  elrobis [ a t ] h o t m a i l   |  Résumé (PDF)   |  LinkedIn   |  O'Reilly Media   |  GIS.SE   |  @elrobis  
Learning Flex 4 on Amazon..
(O'Reilly Media, November 2010)

GIS Blog: Cartometric.com/blog

Tuesday March 17, 2015:
Socket-served Internet mapping, anyone?
I may or may not be on to something. For awhile I’ve been growing more and more tired of the typical Internet mapping user experience. It’s basically this: open a map and zoom/pan somewhere, wait a moment while (hopefully) some “working” graphic gives you a clue that the map hasn’t forgot about you; meanwhile, some basemap tiles load, then after a moment or two, “poof!” all the interactive data (i.e. the sole reason you are using that particular map) appears all at once. Fortunately, in most cases, the basemap tiles “sprinkle in” one by one as they become available, which does give the user an impression that something is happening. But more often than not, basemap tiles [...]

Saturday March 07, 2015:
Q: What’s The best way to convert CDs to MP3s in Windows? A: VLC and the Command Line. Here I’ll show ya..
Today my friend (shout out to Nic Zamora) wanted to know if I still had a recording we made of a song he co-wrote way back in ancient history ..like 2007 or something. Gah.. Well it got me to thinking—my other buddy (shout out to Corey Nolan) had a similar request awhile back for a recording we did with his brother, Dustin, around the same time. The problem was, the only recording I had of the latter was on CD. Since then, that one simple deterrent—being on CD—was solely responsible for preventing me from ever “getting around to it”, like I said I would. The reason I hate ripping CDs is because it’s such a ridiculous process ..first you have to open some asinine software (and God help you if it’s Windows Media Player), click around like a fool, be confused, drag files and/or locate folders, agonize over a variety of settings, many of which you, A) may not know anything about, 2) remember from the last time you did this resulting in inconsistently ripped music, and D) ..worst of all, potentially but unintentionally introduce some weak-sauce copy protection. [...]

Thursday January 22, 2015:
Gabriel Weinberg’s PostgreSQL Tips and Tricks
Here’s a solid article on tuning your PostgreSQL instance and optimizing your indexes. Also, here’s a nice primer on creating and managing indexes in PostgreSQL. I wanted to share ‘em now and save ‘em for later. /E

Tuesday November 25, 2014:
ArcPy CalculateField_management Complex Python Expression to Return a String
My coworker was having some trouble implementing a CalculateField expression in Python so I wanted to document the solution for anyone with a similar issue. (Note: If you  just want the answer, see the What ultimately worked.. heading, below.) Being unfamiliar with ArcPy, I was intrigued by this idea of defining a function as a string value, then passing that string as a variable into another function. I can see how that opens a powerful door—but it also strikes me as ultra weird, and because Python has some very particular spacing/indentation rules (as compared to say, JavaScript), I figured this technique would be ultra-prone to syntax issues ..and thus could be especially difficult to troubleshoot. So in this case, I also wanted to demonstrate how I ultimately thought through the problem. [...]

Friday September 26, 2014:
Create UTFGrid Tiles from PostGIS Tables
I assume you’re where I was about a week ago. That is, you’ve heard of UTFGrid, and now you want to render your own UTFGrid tiles. Perhaps you found yourself looking at this thread over at GIS.SE, but you don’t want to jump into TileStache just now. Anyway if you’ve got a working installation of GDAL/OGR and Mapnik 2+, complete with Python bindings, I’ll show you what worked for me.. Because this is merely an adaptation of Matthew Perry’s original solution, I highly recommend considering his original blog entry on the topic, complete with discussion points and caveats, before proceeding further! [...]

Wednesday September 24, 2014:
OGR VRT: Connect to PostGIS DataSource
I needed an OGR VRT for something and didn’t find a clear example on the web all in one place, so here goes. Somewhere on your system, create a new file with a .ovf extension. Inside that file, add some XML like the following to define your PostgreSQL connection:
That name=”WKTGrid” is semantically unrelated here. I have been experimenting with including WKT geometry data in UtfGrid tiles, and that name is relative to my experiments. You can provide most any value for name. However, do note that the layer name is referenced in the ogrinfo command.

    PG:host= user=postgres dbname=gis password=l00per
    SELECT tms, owner_name, the_wkt FROM parcels_cama_20140829_pmerc

Monday September 22, 2014:
MySQL Implementation of Google’s Encoded Polyline Algorithm
I just noticed someone created a MySQL implementation of Google’s Encoded Polyline Algorithm incorporating some elements of my PostgreSQL/PostGIS approach, specifically, support for multi-part, multi-ring polygon geometries. And this is exciting, at the bottom of his post, Fabien says he’s working on a solution for consuming the Google encoded geometries in Leaflet. Nice! I love open source software! I thought I’d mention the MySQL approach here to help expose Fabien’s solution to English searches and drive a little more traffic to his site. If you can’t read French, Google Translate is your friend! [...]

Friday June 06, 2014:
Convert Google Maps Polygon (API V3) to Well Known Text (WKT) Geometry Expression
There’s dozens of reasons why you might want the Well Known Text (WKT) geometry expression for a Google Maps Polygon object. Assuming you’re using the Google Maps API V3, and you’ve got a variable referencing your Polygon, I’ll suggest two approaches you can take to iterate over the paths and vertices in your Google Maps polygon and return the geometry expression as a Well Known Text string. Add a Simple Utility Method to Your Project Easy enough. Just add the following method to your project. Look below the method for an example of how you’d call it. function GMapPolygonToWKT(poly) { [...]

Monday January 27, 2014:
PostGREsql/PostGIS Implementation of Google’s Encoded Polyline Algorithm
[Edit 30 Jan, 2014] I added an additional PostGREsql method to perform Polygon encoding by concatenating polygon geometries (delimiter: †) and their inner rings (delimiter: ‡) together into one massive encoded block of ring features. I also provided an example JavaScript method demonstrating how to bring the amalgamated polygon feature encodings into your Google Map. By some uncanny twist of the fates, I’ve elected to use, had to use, and/or been asked to develop applications that use Google Maps ASCII Encoded Polyline expressions. In previous encounters, I’ve used a PHP class to handle the encoding task, and most recently I wrote a [...]

Friday November 08, 2013:
PostGIS: query all multipolygon parcels with at least one hole
I was writing some code to iterate over Well Known Text expressions for polygon features, and I decided I needed to test the most complex edge-case I could think of–multipolygon geometries where at least one of the bound polygons has a hole (i.e. an interior ring). I ended up with the following query. This seems like the kind of thing I’ll want to reuse later, so I’m noting it here. For good measure, I also use a rudimentary technique to sort the output with the most complicated geometries in the table at the top of the list. Basically, the more “text” it takes to describe the geometry using Well Known Text, the larger and more complex I figure it must be! [...]

Monday August 05, 2013:
Install httplib2 to your Preferred Python Runtime after ArcGIS Unceremoniously Hijacks the First Attempt
We’re going to use Google Maps Engine for some stuff, and so I thought I’d throw my first codes at it using Python. Well.. Google’s Python example requires the httplib2 library, so I needed to install that. When I did—following the library’s download/instructions—for some reason, the library went into service against ArcGIS’s embedded Python runtime, rather than my favored 2.7 instance, which I use for every single thing. ::grimaces:: To fix this, I just ensured the new library’s setup.py script was called from my preferred Python runtime rather than let Windows, or some black magic, decide which instance it should integrate with httplib2. [...]

Friday December 28, 2012:
osm2pgsql help and usage
I wanted a more convenient place to read the osm2pgsql help output, so this seemed as good a place as any for it. /E
osm2pgsql -h
osm2pgsql SVN version 0.80.0 (32bit id space)
        osm2pgsql [options] planet.osm
        osm2pgsql [options] planet.osm.{gz,bz2}
        osm2pgsql [options] file1.osm file2.osm file3.osm
This will import the data from the OSM file(s) into a PostgreSQL database
suitable for use by the Mapnik renderer
   -a|--append          Add the OSM file into the database without removing
                        existing data.
   -b|--bbox            Apply a bounding box filter on the imported data
                        Must be specified as: minlon,minlat,maxlon,maxlat
                        e.g. --bbox -0.5,51.25,0.5,51.75
   -c|--create          Remove existing data from the database. This is the
                        default if --append is not specified.
   -d [...]

Friday December 21, 2012:
Resident “lunatic” of LinkedIn
Just updated my LinkedIn profile.. This is just TOO FUNNY right now! [image] I totally had to save this for posterity. Unfortunately it will probably disappear before you can say “Jack Robinson”. [image]

Tuesday December 18, 2012:
mapnik rundemo.exe error: run from within the demo/c++ folder?
So I just installed the mapnik 2.0.1 binaries for Windows, and I ran into a “gotcha.” I couldn’t figure this out by Googling, so hopefully this post will help someone.  (Be sure to note the embarrassing conclusion.) Specifically, following a fresh mapnik install, rundemo.exe told me this:
C:\mapnik-2.0.1rc0\demo\c++>rundemo.exe usage: ./rundemo Usually /usr/local/lib/mapnik Warning: ./rundemo looks for data in ../data/,Therefore must be run from within the demo/c++ folder.
Note the first bit:  usage: ./rundemo   Well ok, that’s fine. Except this didn’t work, either: [...]

Tuesday December 18, 2012:
osm2pgsql and windows errors: failed to start MSVCR90.dll, Connection to database failed, etc..
I’m following the BostonGIS tutorial(s) to learn how to setup an OpenStreetMap tile server on Windows (XP 32, cos’ that’s what’s on the desk), and I’m running into headache after headache. So this post notes the gotcha’s I’m encountering and how I’m fixing them (optimistically assuming I fix all of them). “Thar be dragons..” [image] ————————————————— Part I: “Failed to start MSVCR90.dll” First, as recommended I tried using the HOTOSM installer, but when I launch it using the example command provided on the BostonGIS site, I got the error above. I’d logged out/in, rebooted, [...]

Saturday October 20, 2012:
Decode Google Map encoded points as Well Known Text (WKT) with Python
I had close encounter of the 5th kind yesterday.. here’s the gist.. It started when someone “gave” me a GIS dataset (..of polygons, kind of..) that a colleague of theirs, way back in ancient history, chose to pre-cook as ASCII-encoded point pairs. Their intention was almost certainly to use the pre-cooked data in Google Maps. Anyway, being arguably sane, I wanted to return this data to a more GIS-normal format so I could put it in a database like MySQL or Post and use it for other stuff. I considered a few different approaches to this problem, including creating a Google Map that could load-in all of the polygons from their encodings, then iterate over the polygons, interrogate the polygon point pairs, and finally concatenate WKT features from the points and save the geofeatures into a MySQL table. This approach offered the advantage of using Google’s existing Maps API to do the decoding for me. But let’s face it, that’s lame, uninspired, and not inventive.. it wasn’t even interesting. [...]

Sunday January 22, 2012:
PostGIS: count all features of each GeometryType in a spatial table
Sometimes, just when you think you’ve got something figured out –you get reminded that you really don’t.  :/ As you may know, ESRI allows for single and muli-part geometries to live in the same FeatureClass. So, if I have a shapefile of roads, there might be both LINESTRING and MULTILINESTRING features in that dataset. I live just loose-enough not to care about that. But I do need to be aware of it when I’m cobbling data in PostGIS. In thise case, I was getting a PostGIS error tying to do a Dissolve-By-SQL, so I thought why not get a quick count of each GeometryType in the dataset? Maybe I was running into issues single and multi-part geometries were blurred together. It took me an embarassing chunk of time to get this right, so I figured I’d post the recipe  in case I needed a reminder later. [...]

Saturday November 19, 2011:
Prepare a Shapefile for OpenScales using ogr2ogr and PostGREsql
This post explains how to import GIS data (a shapefile, in this case) into a database (PostGREsql) so it can be consumed by most any mapping API. I have OpenScales in mind, but this approach will support any mapping app with functions for rendering feature overlays using geodetic coordinates (i.e Longitude and Latitude). In many cases, you’ll need to translate your feature data out of a projected/cartesian system and into a geodetic/spherical system; so I’ll include a demonstration of that.

Quick and Dirty Summary

This approach has two parts. First, we’ll use GDAL’s ogr2ogr utility to import a shapefile into our database. Second, we’ll use a few SQL commands to translate our data from a projected to a geodetic system, as well as optimize the table for fast query speeds. [...]

Friday November 18, 2011:
ogr2ogr: Export Well Known Text (WKT) for one feature to a CSV file
Perhaps you’re looking for this?
ogr2ogr -f “CSV” “E:\4_GIS\NorthArkCartoData\UnitedStates\MO_wkt” “E:\4_GIS\NorthArkCartoData\UnitedStates\USStates.shp” -sql ” SELECT * FROM usstates WHERE STATE_NAME = ‘Missouri’ ” -lco “GEOMETRY=AS_WKT ” -lco “LINEFORMAT=CRLF” -lco “SEPARATOR=SEMICOLON”
My buddy at work needed a way to get the WKT geometry definition for a single feature in a shapefile. I thought, “surely this is something we can do with OGR?” Lo’ and behold, yes it was. [image] The script above uses OGR SQL to interrogate a shapefile for one lone feature and, when it’s found, exports the record to a comma separated values (CSV) file (or in this case, a semicolon delimited file). Here’s a quick break down: [...]

Sunday November 06, 2011:
OpenScales: Coordinate Transformation from Uncommon Projections
———— UPDATE 2.19.2013: It turns out you don’t have to rebuild OpenScales to apply uncommon projections, you can just assign the projection directly to ProjProjection.defs. (See Simon L.’s answer here in the OpenScales user group.) So if I modify my example toward the bottom of the post (at #5), here is how I would apply the alternate, and arguably better, approach. (Fair warning, I haven’t compiled this and tested it yet, the only difference is the first line), but this is how I expect it should be. If it doesn’t work like this, it’s likely ‘cos an instance of ProjProjection needs to be created first, and the defs property of the instance needs to be appended. In other words, if this doesn’t work, follow the line instantiating moNADProj with moNADProj.defs['EPSG:102697'] = “+title…. blah blah”; One of these days I’ll make super-sure this is correct. But I didn’t want to forget where I found this, hence updating the post.) [...]

Saturday November 05, 2011:
Nikon Coolpix 3100 Near Infrared Hack
While this post is not in-theme with the stated goals of the blog, I wanted to save my notes somewhere as well as make a URL to show-off for my friends. On the other hand, I’m opimistic my experiment will enable some “eco-minded research”, so perhaps there’s still a loose tether linking this back to the GIS community.. Basically, I hacked my old, 3 megapixel Nikon Coolpix 3100 today so that I could take NIR (near infrared) pictures. The following images serve as a storyboard for the process. 0:  The tools and materials involved include (clockwise from bottom-left) —-> small round-nose pliers (my wife uses these for beading) [...]

Tuesday October 18, 2011:
Install GDAL on Windows
Later posts on this blog will assume a working install of GDAL/OGR, so it’s prudent that I first demonstrate how to get a fresh cut of GDAL/OGR up-and-running on a Windows system. Windows users have a few options for installing GDAL (see this question at gis.stackexchange,which will point you to Christoph Gohlke’s binaries –scroll down to GDAL, and the OSGeo4W Installer, among other approaches). However, I’ll guide you through what works for me, which can be summarized as follows: 1) Install Python 2) Install the GDAL binaries published by Tamas Szekeres 3) Append your environment Path variable [...]

Sunday October 16, 2011:
Google Maps for Flash/Flex: Dead Man Walking
“When life gives you lemons..” Let’s just review the signs:
  • First, the Google Maps Flash/Flex API had not been updated for quite some time.
  • Meanwhile, some developers were sharing a hack to bypass a nasty initialization bottleneck in the Maps Flash/Flex API that stalled map loading in AIR apps.
  • At the other end of the yard, Google lifted its registration key requirement for the Maps JavaScript API V3; yet, the Flash/Flex counterpart remained unchanged in this respect (curiously, it was key-hashing that caused AIR apps to stall).
  • Finally, and though unrelated, Pamela Fox, one of the higher-profile support engineers attached to Maps developer relations, left Google for other pursuits. [...]

Answers at gis.stackexchange.com

How to order points along a line?
If using PostGIS, you can order the bus stops according to their value returned for an ST_Line_Locate_point() call.
This is how it looks if I apply it to the linestring and points you supplied:
  ST_Line_Locate_Point(line.f1, ST_GeomFromText('POINT(-70.58176091969386334 -33.37599871220383818)')) as A,
  ST_Line_Locate_Point(line.f1, ST_GeomFromText('POINT(-70.58081166577235877 -33.37588970535671251)')) as B,
  ST_Line_Locate_Point(line.f1, ST_GeomFromText('POINT(-70.57890070625846 [...]

Leaflet: Map focus issue after enabling a custom ZoomToArea control in Firefox
It seems one solution is to prevent this dragging issue upfront, at the document level, rather than retroactively treat the symptom and push focus back to the Leaflet map element/object using javascript.. It finally occurred to me to google "javascript firefox disable image drag", and that lead me to [...]

Automating estimation of invert elevations using ArcGIS for Desktop?
Just off the cuff.. you might try first extracting the endpoints of your line features, then extract the DEM elevation values for line endpoints and the manholes. 1) Feature Vertices To Points (Data Management): Turn your pipe line features into endpoints. Note the graphic describing your different [...]

Satellite Imagery Providers
MapBox recently (as of appx Fall/2013) started offering an imagery service, and while it's not available to free accounts, it is available to all of their paid accounts, which start at just $5 a month. I'm impressed with the resolution they've achieved, too. This is zoomed-in to a small town in Arkansas [...]

How to rename PostgreSQL/PostGIS columns while importing Shapefiles?
To expand on David Bitner's answer, here's an example ogr2ogr instruction demonstrating an optional OGR SQL clause to rename fields from a source dataset (shapefile in this case) before they are brought into a target dataset (a PostGREsql table):
ogr2ogr -f "PostGreSQL" PG:"host= user=YourUser dbname=YourDB password=YourPass"
"E:\path\to\YourShapefile.shp" -nln NewTableName -nlt geometry 
-sql "SELECT col_1 AS BetterName, col_2 AS ImprovedName FROM YourShapefile" 
-lco GEOMETRY_NAME=the_geom

Best Practice for HTML5 Geolocation with ArcGIS for Javascript API
I think your first solution, to project the Lat/Long coordinates to your preferred state plane is the right way to go. However, I'm not sure what you mean by "a Geometry Service". Do you mean you're using a 3rd-party web method to perform the coordinate transformation? If so, I would discourage that [...]

Leaflet WMS Google Maps Engine
For anyone else who comes through here researching this, it seems Google Maps Engine (GME) doesn't expose individual layers as WMS assets. If I'm wrong, I hope someone will correct me in the comments. Rather, you have to create and publish a map asset to include the layer(s) you want, then publish the map. Then, the map's "access links" will include a WMS url. To find it, browse into your map in the GME dashboard, look in the upper right corner of the map details view, click on "access links" and note the WMS option. The map will need to be publ [...]

How to view locally generated XYZ map tiles?
Your browser can load your local XYZ tiles. Check this tutorial at BostonGIS which shows how to do this relative to OpenLayers. The thinking should transfer to Leaflet or whatever else you want to use. You should install and setup Apache or IIS so that your development machine can behave like a server and serve itself the tiles in the same manner as any deployed website would, but I believe you can still use a local file path and the OpenLayers or Leaflet client will still consume the tiles withou [...]

Automate import of multiple rasters as layers into tilemill
Could you use the GDAL utility, gdalbuildvrt, to create a mosaicked VRT as a raster input to TileMill? It seems to be a recommended approach.

Looking for dissolve algorithm for Javascript
Stumbled across this and thought I'd provide an example.. 1) First download the JSTS library, unzip it, browse into the lib folder, and include the two lib files (javascript.util.js, and jsts.js) in your project. I put mine in a separate jsts folder and referenced them like so..
<script type="text/javascript" src="jsts/javascript.util.js"></script>
<script type="text/javascript" src="jsts/jsts.js"></script>

How to export a shape polygon to a file
If you're comfortable with GDAL/OGR (or willing to level up), you can use ogr2ogr along with OGR SQL to quickly and easily export a single feature from any of the OGR supported vector formats into a stand-alone shapefile. For example..
ogr2ogr -f "ESRI Shapefile" "C:/xGIS/Vector/test/Richland.shp" 
"C:/xGIS/Vector/COUNTIES_SC_WGS84.shp" -nlt GEOMETRY 
-sql "select * from counties_sc_wgs84 where cntyname='Richland'" 

Best source for high-resolution satellite images free/low-cost?
You might want to checkout the MapBox Satellite layer. It's available under their Basic Plan, which is $5 a month. I believe the layer is distributed as TMS tiles, and you can review the granularity and coverage of the layer before you commit to anything. Admittedly, though, this would be more difficult to apply to your use case, but surely not impossible, as GDAL could be used to mosaic the tiles. [...]

How to convert NAD 27 to WebMercator in using the ESRI Silverlight API? (C#)
I'd recommend you try the Proj.NET library (a Proj4 implementation for .Net) in your application and let Proj.NET do the coordinate transformations for you. It should be compatible with Silverlight by way of C#. Here's a blog post with a C# example showing implementation. I took a crack at it in a simple Windows Form app. Here's a screenshot of it.. [...]

GoogleMaps URL string to display unique marker
Check out the Google Maps Static API, specifically the section on markers. Using the static maps API, I can create a URL with the marker setup you requested like so:

Why is it not advisable to perform spatial analysis on layers with source datasets having same datum but different projections?
As for what could go wrong--data in different projections may not share the same origin; therefore, mathematical calculations between such layers could be permitted without the software first interrogating the data for potential differences in origin, or with a view to making appropriate adjustments if necessary. Without the same origin, alignment issues are guaranteed. [...]

Bulk lookup of address census tract and block
Ok Ben, here are my assumptions: 1) You've already got your data (I had some address points in a shapefile, and I downloaded census tract and census block shapefiles for Missouri). 2) You've already geocoded your address points and you're comfortable projecting the data. 3) You're comfortable with an [...]

How to make Mapnik render Erdas images in RGB instead of grayscale?
You might want to double-check that your VRT is specifying proper red/green/blue assignments for the bands. (And possibly alpha if you have a special alpha band.) I had a somewhat similar problem where I'd made a VRT, and Mapnik didn't seem to render anything from it. When I looked at the VRT, all four bands looked like this: [...]

Searching for c# code to convert from UTM to WGS1984 (and back)
if you're willing to use the GDAL/OGR C# bindings, which you can get here assuming you use Windows, you can achieve what you want via the OSGeo.OSR library and proj4 projection expressions from spatialreference.org. The specifics of finding and installing GDAL/OGR builds for your operating system are covered in other questions and several blog posts. But once you find a build that suits you, make sure you reference the [...]

Does tile server renders every request?
Mapnik itself is basically just a rendering engine. As I understand, it can be used to render anything from tiles, to 8.5"x11", and even plotter-sized PDFs. To describe it very simply, Mapnik takes your data inputs, a spatial boundary, and a set of symbology styles (either hard-coded or an XML sourc [...]

Help getting my flex service publicly accessible
[overhauled answer to address the OP's comments] @cl3, nice job getting your mapping application in the public web scope. When I run your app with Fiddler open, I do see that it's trying to fetch a crossdomain.xml policy file. In the root of your web scope (i.e. whatever resolves exclusively to nwrpdc2012.com [...]

Downloading multiple files from TIGER FTP site
I've done what you're attempting with the Tiger road data, so it stands to reason it would work for what you're doing here. The bold value in this filename (the last one in your list, above).. tl_2012_04005_edges.zip ..is a so-called FIPS code. Specifically, this one is Coconino County, AZ. So all you need is something that provides a nice list of FIPS codes, then you can write a fun one-off program to concatenate URLS for each FIPS code, then download the corresponding tiger file. [...]

Python code: Using Search Cursor to find missing values in attribute table between two layers in one MXD
I'd do something more like the below. Note that there certainly are more "Pythonic" approaches; however, this should get you through the problem. Basically I just create two lists of station id's, then compare them. The first list is the comprehensive one from your master file, with 100% of the id's you're checking for. And the second list is build against your annotations table. In the last action, I loop over the comprehensive list and chec [...]

How to crop a satellite image?
@MAJ742 may be right---but before you run a long geoprocessing task on a big SPOT raster, go into the raster layer's properties, and try setting the Display Background Value to transparent/No Color. This site at geosoft.com provides some tips (including the image, below), but your looking for the following screen: [...]

osm2pgsql Error: operator class "gist_geometry_ops" does not exist for access method "gist"
Edit2: Over at BostonGIS, Regina Obe responded to a user with this error as follows--
I think that error happens if you already loaded the data or parts of it. you might want to try truncating your table or if loading multiple files, make sure areas don't overlap
Edit1: Did you see this thread [...]

gdal_retile.py and gdal_translate Requirements
Unfortunately you'll need to make a GDAL build, or find a build for Solaris. The GDAL py utilities require Python bindings or they won't work (which I'm guessing you discovered by now). Perhaps I should be slapped for this but.. could you just handle these tasks on a different computer? Getting them going on either Windows or linux is trivial. [...]

How to convert geometry to WKT using ArcPy?
I'm not equipped to confirm this, but this page documenting SearchCursor (arcpy.da), discussing the field_names parameter, notes the following:
FROM ArcGIS Help 10.1 - SearchCursor (arcpy.da) Additional information can be accessed using tokens (such as OID@) in place of field names: SHAPE@WKT [...]

gdal_retile.py tile naming scheme
@algone, if you're comfortable editing the utility's gdal_retile.py Python file, open it, and find where the getTileName() method is defined. In my version, it appears at line #652 and looks like this: def getTileName(minfo,ti,xIndex,yIndex,level = -1): To accommodate what you're wanting to do, I can merely override the [...]

Finding depression with contour lines
My opinion is the vector/contour lines are more appropriate for a visual inspection, whereas your original raster is more appropriate for programmatic inspection. Having said that, however... You might try doing a definition query for the shortest contour lines. As this would designate smaller perimeter measurements, which should be a trait shared by depressions. Of course this will require a heuristic to establish the maximum acceptable length for contours that signal depressions. [...]

Feature comparison between QGIS and ArcGIS for Desktop
@U2ros makes good points, but I think a few important ones are omitted, for which (as of QGIS 1.8) the typical user's preferences-alone cannot wholly make up the differences between these platforms. Where ArcGIS has the Edge Most conspicuously PRINTING. I don't have Arc installed on my primary system these days, but creating print-quality maps in Arc is intuitive and simple compared to counter-intuitive and difficult in QGIS, which I've never been quick to brag of in this respect. (But maybe I'm just doing something wrong? Or haven't had the righ [...]

Using 3D Raster Domain to get polygon of raster - but stripping Z and M values
I suspect the polygons are created as such large sizes, not because they are gaining the additional Z and M flags, but because they have millions of vertices! (Maybe some exaggeration there but.. perhaps you take my meaning.) My recommendation would be to try downsampling the raster before you vectorize it. ( [...]