geoMusings

geospatial technologies and practices

Using Virtual Rasters to Generate Contours in QGIS

| Comments

Every now and again, I am asked to make maps. It’s not my strongest suit, but it sometimes comes with the territory. My latest task, as mentioned in my previous post, involves building support for MBTiles databases into a mobile situational awareness tool. This is done so that the devices can have a persistent local basemap in the field. The need arose to ensure that the basemaps were high contrast to assist with visibility in bright sunlight. Something like this:

One of the requirements was to have topographic-map-like contours to indicate changes in elevation. Existing map services didn’t provide what we needed so it was necessary to build a custom map, which meant generating contour lines. It had been years since I had last done that with Esri tools, but I didn’t have any extension licenses available, so I turned to QGIS to get the job done this time.

Data, Apps, and Maps

| Comments

It’s been a quiet month-and-a-half here on the blog, mostly owing to an abundance of project tasks. I recently started a short-term project to help one of my Federal customers extend data source support for an application they have been developing. This customer is technically a new one but the project team is made up of government developers that I have worked with on a few other projects so there is a great deal of familiarity.

The application, which has been under development for some time, is written in .Net and make use of the open-source (MIT) GMap.NET mapping library. The application features a desktop version running in Windows and a mobile version running on Android tablets. The .Net back end works seamlessly on both through the use of Xamarin, although I have not had the chance to get my hands dirty with that yet due to limits on Xamarin licenses and available Android devices. To its credit, GMap.NET seems to work fairly well in both environments.

A Little Deeper With Node and PostGIS

| Comments

What does one do when presented with more snow days than expected? My friends in Colorado would probably do something outrageous like skiing, but I found it to be a great opportunity to catch up on some of my recreational coding. Specifically, I wanted to revisit the Node/PostGIS work I blogged about earlier.

As fun as that project was, it was fairly limited in scope and I wanted to spread my wings a little more with Node. So I decided to build a more general-purpose wrapper around PostGIS. Lately, I’ve become a bit obsessed with the idea that PostGIS may be the only GIS tool you really need in terms of data storage, management, and analytics. That’s probably a topic for another post but exploring that concept was a perfect premise for my continued explorations with Node.

I have been circling back to Node over the past few months to continue building my comfort level with it. I tend to eschew frameworks when i have learning something new because I want to get comfortable with the core before I start layering on abstraction. That was my approach with the tile viewer tool I built a while back. For the recent post centered on Amazon RDS, I added Express into the mix, which has been a big help.

This time around, I wanted to dig a little deeper with the node-postgres module and also make the application more modular. I wanted to build around a few core principles:

  1. Keep it RESTful (or as close to it as I could)
  2. GeoJSON in/GeoJSON out (so….vector only for now)
  3. Let PostGIS do the heavy lifting

URL Utility for Twitter Direct Messages

| Comments

When Twitter opened up direct messages (DMs) so that anyone could DM anyone else, they made it much more difficult to DM links. This is understandable as it makes DM spamming much more difficult. I have found that links to tweets and links to GitHub seem to work but many, many others do not.

This has led to a variety of strategies for sending a link, including cumbersome entry as something like “www[dot]microsoft[dot]com” or similar. The strategy I settled on was to replace slashes with pipes and dots with asterisks(http:||www*microsoft*com). It’s easy and relatively risk free in terms of RFC 3986, but I’m still not a huge fan of typing and, if there will be errors introduced, it will most likely occur between the chair and the keyboard. As a result, I wrote myself a dirt-simple little tool to make my life easier. In the spirit of making things and putting them on the internet, I posted it as a utility on this site and it can be found here. It seems to do just enough to satisfy the Twitter filter, which is really all I’m after.

It’s very simple but it makes my life easier. If I send you a link in this format, you can unroll it here. If you want to send a link, you can roll it up here. Feel free to try it and I hope you find it useful. Feedback is always welcome.

Initial Thoughts on the DC DevSummit

| Comments

This week, I attended the first-ever Esri DC DevSummit which followed the Federal GIS Conference (please switch it back to “FedUC”). This event, intended and a smaller, Federally-focused, companion to the annual Palm Springs DevSummit, came together quickly but was very well-attended with about 300 attendees.

It was interesting to note that the most well-attended sessions of the day had to do with Javascript (every Javascript session had over 100 participants). As more and more organizations update their IT infrastructures, the acceleration away from plug-ins seems to be picking up pace. The most common refrain amongst attendees in that regard is that continued standardization on IE8 remains the biggest impediment to sunsetting things like Flex and Silverlight, but the logjam seems to be starting to break loose.

Meanwhile, Over at Zekiah…

| Comments

I don’t usually cross-pollinate between this, my personal blog, and the company blog over at Zekiah. One of the great things about working at a place like Zekiah, however, is the opportunity to work with smart people and see what they are doing. At times, my colleagues will share components of their work on the company blog. We encourage this, and the experimentation that leads to the posts, as a way to keep our technical capabilities fresh and to also showcase what we do in a way that goes beyond the typical capabilities statements that exist on every site. My colleagues have been pretty busy but have managed to take some time to write a few posts about their work:

  • Esri CityEngine, Unity 4.0 and the Oculus Rift - My colleague, Dan Entzian, is an avid gamer, a great developer, and a smart GIS guy. This post combines those interests by showing how to bring cities created in Esri’s CityEngine into gaming environments like Unity and integrate them with the Oculus Rift virtual reality display. It’s a quick, but detailed, read that shows the interactions possible between geospatial tools and games.

Esri Federal GIS Conference Features Immersion Summits

| Comments

The 2014 installment of the Esri Federal GIS Conference (formerly known as the Federal User Conference) happens next week. I have attended the event off and on since its inception. While I originally was drawn by the presence of a large geo-related event in my local area, that gap has been filled by numerous, smaller events from various sources in the past few years. The FedUC has traditionally had something of an identity crisis, with the content often feeling a bit diffuse and somewhat rushed over its quick, two-day schedule.

To Esri’s credit, and probably in recognition of the changing economics regarding travel for Federal employees, they have continued to fine-tune the event when they could have easily walked away from it. The main problem with the FedUC is the fact that the Federal Government performs a wide array of functions that are difficult to cover well over two days in a conventional format. Esri has tackled that problem this year with the introduction of “immersion summits,” which are three-and-a-half hour sessions dedicated to specific domain areas.

File Geodatabase Schema Compare Tool

| Comments

In my work supporting various aspects of geospatial data modeling, I’ve spent a lot of time delving into concepts around configuration management of such data models. We’ve been able to apply a core tool set to perform various functions such as version managment, profiling, version-to-version migration, and validation in conjunction with a system we call the platform independent model (PIM). I gave quick overview of the PIM in this post over on the Zekiah blog and the complete series on it can be found here.

I’ve recently spent a bit of time consolidating code after a recent data delivery and decided to post a utility that was an outgrowth of that effort: a tool to compare schemas of two Esri file geodatabases and report differences. This lent itself to general use because it does not require any connection to a PIM.

Of Predictions and (Geo)Hipsters

| Comments

“Never make predictions, especially about the future.” - Casey Stengel

A few days ago, my friend Atanas Entchev asked me for my thoughts on coming trends in 2014 for a feature he was preparing for his GeoHipster site. Being the obliging sort that I am, I provided a couple and I’ve been attempting to explain one ever since. This has mostly been back-channel via private messages and such but, today, the GeoHipster piece was the subject of the “#geowebchat” on Twitter. Twitter is very effective for some types of communication but quickly goes off the rails where nuance or anything long-form is required. So, it was time for a post. My prediction went like this:

I think 2014 will be the year Javascript takes over mapping and visualization in the geospatial world.

It was followed by an apparently too brief explanation that I will attempt to expand here.

geoMusings 2013

| Comments

As we enter the final hours of 2013, I wanted to take the chance to thank everyone who stopped by, and continues to stop by, this blog. I appreciate your readership, comments, and feedback. Even after 7 years, I am still humbled by the fact that so many read this blog each year. I decided to take a look at the top ten posts from this year, according to Google Analytics.

  1. Yes, You Need to Code
  2. GeoJSON on GitHub: Now What?
  3. GeoJSON From ArcGIS Server
  4. SpatiaLite and ArcGIS 10.2
  5. Checking Out the GDAL/OGR Plugin for ArcGIS
  6. OGC Abandons the Web
  7. DevOps for Geospatial Data
  8. Another Look at GIS StackExchange
  9. Consider the ‘Alternative’
  10. The Best Thing I Saw at TUGIS 2013

When I took a look at the list above, I realized that I have been much more focused on data than I have in past years. I think I kept a development/integration flavor but the focus on data was quite noticeable in retrospect. Though I have been actively coding all year, I notice that I did not have as many code-focused posts, which is something of a departure from previous years. 2014 is already shaping up to be a busy year personally and professionally so it will be interesting to see where that leads me on this blog.

Thanks again for your continued interest and I hope you have a fruitful 2014.