New Directions

Since the first of the year, I’ve been on my own. After considering a number of really compelling job offers, I decided to start my own company and take a contract position with company doing work that’s meaningful to me (more on that in the future). I’m also picking back up with some GIS work … Read more

QGIS and a Small Passion Project

When he was in the Air Force, my father served on Air Force One under four presidents – Eisenhower, Kennedy, Johnson, and Nixon. He was on the engine crew and got to see a lot of the world over the course of those administrations. I grew up with Presidential memorabilia all through our home: signed photos of the presidential plane, commemorative holiday pictures from the White House, and Christmas ornaments, for example. Occasionally, I’d run across fun things like his old passport with stamps from countries who have not been friendly with the US in decades – hints of a bygone geopolitical era. One time, I found four sets of gold-rimmed Ray-Ban aviator glasses that had been standard issue for a few years – especially for those who spent long days on tarmacs.

Recently, he pulled out a memento I had never seen, pictured at the top of this post. It was box that was given to personnel who accompanied Eisenhower on a trip through Europe, Asia, and Africa in 1959. The box was full of other mementos, including a deck of cards from the Columbine, the propellor-driven predecessor to the Boeing jets that have been flown for several decades now. Also a Zippo lighter still polished to a high sheen. But what fascinated me was the map on the cover. I took a picture of it and came home intent on recreating it with GIS.

Read more

Simple Isochrone Analysis in QGIS

With my MBA program behind me, one of my goals has been to shake the rust off my coding and GIS skills. For this post, I thought I would start simply, just to make sure I remembered how to find my way around QGIS.

We recently purchased a plug-in hybrid. It has a 17-mile range when running fully electric, so I used this as the basis for a quick analysis with QGIS. Of course, any such experimentation isn’t much fun without a few unrealistic assumptions, so here they are:

  1. The car was parked with an empty tank.
  2. It was brought up to a full charge overnight.
  3. Rather than immediately going to a gas station, we’ll go to a charging to top off the battery again.

These assumptions are, of course, ridiculous, but they allow me to have some fun.

I decided to build out drive-distance isochrones representing ten miles and sixteen miles. Ten miles represented the safe range, and sixteen represented the edge of insanity, at which I should use the last mile to find a gas station.

Read more

Fulcrum Query API and Koop

I don’t write code as much as I used to, but I have to return to it every so often to keep my sanity. With the current world situation, there are a lot of dashboards going up, many of which are based on the Esri Operations Dashboard or ArcGIS Hub.

I got thinking about a previous crisis in which Fulcrum and Esri’s Koop were used to great effect and started wondering if I could make the interaction between the two easier. Koop, at its core, takes GeoJSON and transforms it to be consumed by clients that can handle ArcGIS feature services.

Fulcrum has two primary ways to expose data as GeoJSON feeds – data shares and the Fulcrum Query API. Koop has a provider that handles arbitrary GeoJSON feeds quite well. It can be found here. In order to use that provider with Fulcrum, the only option is to use Fulcrum data shares. That works really well, but data shares have a couple of drawbacks. First, they are always public. Second, there is a limit to the number of shares that can be enabled from an account. Third, the data is shared all or nothing, so columns cannot be filtered.

Read more

Desktop GIS – The Evergreen Topic

It seems that I tend to revisit the state of desktop GIS every so often. With the continued advancement of “web GIS,” as well as the increased power of mobile platforms, proliferation of spatial analysis techniques into non-traditional environments, the ubiquity of spatial databases, and a host of other factors, it’s tempting to speculate on the long-term prospects of traditional desktop GIS software. This seems especially true when the software in question originates in Redlands, California.

I was brought back to this topic by a recent discussion on Twitter, initiated by my friend, Atanas Entchev.

https://twitter.com/atanas/status/1093489694082510853

The ensuing discussion grew legs and continued much longer than I would have thought. The core of the discussion centered around confusion in Esri’s messaging or, more accurately, subsequent interpretation of Esri’s messaging with regard to the status of ArcGIS Desktop. Long story short: much ado about nothing. Esri is releasing new versions of ArcGIS Pro and ArcMap. There are primary sources reaffirming their commitment to desktop GIS, so we can all go back to what we were doing. Awesome.

Read more

Working with Materialized Views in PostGIS

It’s been a few months since I’ve posted, owing mainly to getting my feet under me at Spatial Networks. About a month after I started, the company re-merged with Fulcrum, which had previously been spun off as a separate company. As a result, I’ve gotten to know the Fulcrum engineering team and have gotten to peer under the hood of the product.

Of course, Spatial Networks is also a data company. What had originally attracted me was the opportunity to help streamline the delivery of their data products, and this remains a pressing issue. This has kept me elbow-deep in PostGIS, and has led me to delve into using materialized views more than I have before.

What is a materialized view? If you are familiar with relational databases, then you are familiar with views, which are saved queries that are stored in the database. Similar to tables, you can select data from a view; but, rather than directly selecting physically stored data, you are executing the SQL that defines the view, which will stitch together data at the time of execution.

Read more

Personal Geospatial Workflows, July 2016 Edition

It’s hard to believe, but I last touched upon this topic over two years ago, when my family and I were living in our between-houses rental. One of the goals I had when building our current house was to create a space where I could more effectively work from home. To that end, I have a dedicated office that I’ve been working toward optimizing for my technical work.

One advantage of a dedicated space, which I did not anticipate ate the time, is compartmentalization. One of the dangers with working at home is the blurring of the boundary between work time and personal/family time. In our old house, I definitely felt that as I was working from the dining room table. Now, I can more effectively shut the door and step away. I’m not perfect at doing that, yet, but I am getting better.

IMG_20160728_090705094_HDR

As a consultant doing federal work, I don’t get to work off-site all the time. I’ve been fortunate, however, to have worked a few projects over the past couple of years that have allowed it, so I’ve taken advantage of it as much as possible.

Read more

Publishing GeoPackage to GeoServer Using QGIS

Recently, I had the occasion to attempt to generate an OGC GeoPackage from QGIS and publish it using GeoServer. The use case was fairly straightforward. I had been given data in GML format and needed to publish it. For many valid reasons (such as lack of spatial indexing), GeoServer does not natively support publishing GML data. As a result, I need to convert it to something that GeoServer did support.

QGIS opened and displayed the data easily and, from there, I could export it into any number of formats. (Or I could have used OGR.) The feature attributes had very long names and I didn’t want to lose that richness by exporting to shapefile. I was trying to keep my server-side life simple, so I was hoping to avoid setting up an RDBMS data store for this purpose. It was then that I noticed QGIS supports exporting to GeoPackge, so I decided to give it a go.

For purposes of this post, I am using a shapefile of building footprints of Leonardtown, Maryland. The process is the same for a GML file, however.

As shown below, you initiate the process like any other by right-clicking and choosing “Save As…” in the context menu.

qgis_post1

Read more

Desktop GIS

I’ve found myself using desktop GIS more and more lately. While I don’t tend to think of myself as an analyst and I’ll never be confused with a cartographer, it is simply not possible to perform GIS software development without making occasional use of desktop GIS. My typical use cases involve data preparation or query verification or similar such tasks to prove out some logic before I commit it to my application code. The screenshot below depicts my default desktop GIS configuration:

Ubuntu_12.04_terminal_fi

Yes, I have come full circle back to command-line GIS. After years of fiddling with the latest Arc/Q-GUI-du-jour, I find myself spending most of my time working with a flashing cursor.

Read more

Toolbars

The convoluted user interfaces of most desktop GIS software is something I revisit from time to time. James’ most recent issue of his SpatialTau newsletter got me thinking about it again. A while back, I got caught up in a Twitter discussion about it. Tools like geojson.io and TileMill have fantastic interfaces, but they also perform narrow functions (data editing and map composition, respectively).

For a while, I’ve been thinking that this might be an approach worth investigating: rather than one piece of software with everything in it, a suite of tools dedicated to different aspects of the typical GIS workflow. This would not be a panacea as some tasks are just more complex than others. (Think of all of the editing options available in any piece of CAD software, and this is devoid of any analytical tools.) As attractive as this approach seems to me in concept, I suspect it would break down in execution. I think it could end up multiplying the problem with many overly-complex applications instead of just one.

Over the last year or so, I’ve become somewhat enamored of another approach: the search tool. This requires a little back story.

Read more