FOSS4G 2017 Boston

On Sunday the 13th, I flew from Copenhagen to Boston to attend FOSS4G. It was a long flight, and after two weeks it was a transition from Europe to the US. It was also a transition from a small intimate QGIS conference in Denmark, to the biggest FOSS4G ever in a busy part of Boston.  

FOSS4G didn't disappoint. Monday began  with an impressive line up of pre-conference workshops. I took workshops on R, GRASS, PostGIS and Inkscape with QGIS. I was a little delirious from jet lag, but they were all really well paced and well taught. I really appreciated the materials being posted online, because I have more homework to do. Plus as usual I didn't get to attend all the ones I wanted to. 

Regina Obe set up a table for FOSS authors to sell and sign books. Since I was in Denmark, I pre-ordered my books from the publishers and had them shipped to Paragon. I wasn't sure what to expect and didn't want to be left with a ton of books to lug back to New Mexico. As it turned out I should have ordered more. I ordered 10 each of my two books and they almost sold out at the first break. I was really surprised. 

During the week I sat on a panel (What the Heck Does an Open Source Job Look Like Anyway?) with Sara Safavi, Rob Emanuele,  and Katrina Engelsted. Like the conference, the panel discussion went by really fast. I also gave three talks. One talk was on the Community Health Maps initiative I've been working on. For another I presented for a client who couldn't make it. It covered teaching earth sciences with open source GIS. I also co-presented on the State of QGIS with Larry Schaffer. 

As is usually the case, the people were the best part. It was fun getting to meet new people, people I've known of but never met, and reconnecting with old friends. For example, I was checked into the conference by a client of mine who I'd only spoken with on the phone, and the week kept rolling like that. There were about 6 of us who traveled from Denmark to Boston. It seemed we kept hanging out together in Boston, still in a Nødebo high.

It was a really well planned conference. Everything ran like clock work. There was always someone nearby to help answer a question. Kudos to the conference committee on a job well done! Now I'm about to head out to teach a workshop at Yale and another in Miami. No rest for the weary. Stay tuned!

Another Wonderful QGIS Conference/Hackfest/Developer Meeting in Denmark!!!

There's something notable in Nødebo. From August 2-10 The third QGIS User Conference, Hackfest and Developer Meeting was held in Nødebo Denmark at the University of Copenhagen – Forest and Landscape College (Københavns Universitet Skovskolen). I was fortunate to attend, as I did in 2015. The first two days were the users conference, then there was a 3 day hackfest followed by 4 days of workshops.

It was another intimate meeting with 120 people from 29 countries and 6 continents! My wife and I were the only Americans to attend the user meeting. It was really nice to have my wife and business partner along. This in fact became a theme of the meeting. Many brought their spouses/partners and kids. It felt more like a QGIS family gathering than a "conference".

Since we are all staying on a small campus and eating all our meals there, it creates a real bonding atmosphere. There were numerous opportunities to connect with others throughout each day. It is the best community building atmosphere I've experienced at a conference. The QGIS family is very warm and inviting. I think this is part of the reason QGIS is such a successful project. I got to catch up with old and dear friends/colleagues and meet many new ones.

Many of the talks were given by developers and we were updated on the state of QGIS. Topics included QField (Matthias Kuhn and Marco Bernasocchi of OpenGIS.ch), a native QGIS 3D renderer (Martin Dobias of Lutra Consulting), the InaSafe plugin (Tim Sutton of Kartoza), QGIS Web Client 2 (Andreas Neumann). There were some short workshops in this section including a nice overview of LASTools by Martin Isenburg. Then Nyall Dawson (North Road) gave a truly memorable presentation Exploring the Depths of Madness with QGIS Symbology that I'm still trying to wrap my brain around.  Interspersed throughout the program were many presentations  highlighting local initiatives involving QGIS and several research projects. Tim Sutton just authored a much more complete accounting of the talks at the conference with video clips. You can find it here.

The environment at the Skovskolen is full of the feeling of Danish hygge. This is largely due to the hard work and gracious hosting of Lene Fischer. The meals are better than any I've had at any other conference by a large margin, and the local staff and students are warm and welcoming. We had a chatted with students Asbjørn, Ras and Frederik. Each night there was a gathering at the local watering hole Flaeken, with nail game challenges and fuzboll. I miss the nail game. It's a Skovskolen tradition involving pounding nails into a large stump. 

On the final day I taught a full day workshop on Cartography and Data Visualization in QGIS. The attendees were from 9 different countries. What I gave was a tour of the many great data visualization tools available in QGIS.

Data Visualization and Cartography with QGIS

I covered the print composer introducing some tips and tricks along the way and a section on Atlas generation. I then covered the many renderers now available, highlighting the 2.5D, Geometry generators, point displacement and showing some use cases for the popular inverted polygon shapeburst fills. I also covered some plugins such as QGIS2ThreeJS and the Time manager and use cases for different Blending modes. 

I sadly missed the group photo taken near the end of the hackfest taken by Maryanne Dawson. Sarah and I took some days in the middle to have a holiday. We rented a place in Copenhagen and flew to Oslo one day to visit the Viking Ship Museum. 

QGIS 2017 Group Photo by Maryanne Dawson

To top it off, on the final night Sarah and I were taken to a performance of Hamlet at Kronborg Castle. This is the castle that was the model for Elsinore in Hamlet. The performance was phenomenal including some interesting modern elements like cell phones and helicopters. If that weren't enough it was staged right next to the moat outside the castle complete with swans and full moon rising. There was nothing rotten in Denmark and I cannot wait until next time! From there we flew to Boston to attend FOSS4G. I'll report on that next!

A QGIS Workshop at the Society for Conservation GIS (SCGIS)

Last Sunday I taught a full day Introduction to QGIS workshop at the 2017 SCGIS conference in Pacific Grove, California. While I've taught this course many times before, this class was particularly unique because SCGIS, although an independent non-profit organization, is heavily sponsored by Esri. In addition, Max Wright with Conservation International, also taught a QGIS workshop entitled An Introduction to Predictive Land-use Change Modeling using Open-source Software, making 2 of the 4 workshops at SCGIS QGIS based. Certainly a first! 

A QGIS workshop at an Esri sponsored conference?!

A QGIS workshop at an Esri sponsored conference?!

My workshop was sold out with a waiting list and I eagerly anticipated meeting the participants. Almost universally attendees were either:

  • Mac users and/or
  • Looking for work and wanting some new skills

I expected there to be some ArcGIS power users from established conservation organizations who were just curious about QGIS, but there wasn't anyone who fit that description. 

Overall QGIS was very well received. During the morning session I introduced FOSS and QGIS, showed how to add and style data and create a map. At lunch one attendee said,

"I have about 10 pet peeves with ArcMap, and you just answered 7 of them with QGIS!"  

During the afternoon session I covered plugins, geoprocessing, the Graphical Modeler and how to get help/resources. If you missed it, all the workshop materials can be downloaded here.

One of the most interesting aspects of SCGIS is their International Scholar program. In attendance were a couple dozen scholars from around the world. I met people from Barbados, Zimbabwe, Madagascar, Brasil, Columbia, The Gambia, Bangladesh, New Zealand, Pakistan, and Zambia. It was really fun connecting with people from such different places working on conservation.

Then there was the location. We were at the Asilomar Conference Grounds on the Monterey Peninsula. The waves on the beach could be heard from our room and each night I went out to the beach to enjoy the sunset. I also had time to visit the Monterey Bay Aquarium and go on a whale watching tour!

One thing I realized is that many don't seem to look far beyond the Esri ecosystem for geo-tools. I've been an Esri user for 20 years, I get it. There are some great products in the stack. However, I hope more SCGIS'ers eventually venture to a FOSS4G conference. I think it would be immensely helpful to their work. The set of FOSS tools discussed there is so broad and interesting. Afterall GIS is just a tool, why not have a bigger set of tools to work with? Certainly having two QGIS workshops at SCGIS is a step in the right direction. 

I had some discussions with another SCGIS attendee about doing a workshop next year on how to work with LandFire products with QGIS. I'll keep you posted on that.  Next up is the 3rd QGIS User Meeting/Hackfest/Developer Meeting in Nødebo Denmark where I'll be teaching a full day workshop on Data Visualization and Cartography in QGIS!

Apparently It's Conference Season!

I don't think I've ever been to back-to-back conferences and this summer I'm going pretty much back-to-back-to-back. The best part is that they are all in great locations.

First up I'm giving an Introduction to QGIS full day workshop at the Society for Conservation GIS (SCGIS) conference. The location can't be beat. It's at the Asilomar Conference Center, located on the coast just outside of Monterey, California. Historically this has been an esri-centric group so it's an exciting opportunity to show conservationists how far QGIS has come! I've been told the workshop is sold out with a waiting list.

The main presentation hall at Asilomar

The main presentation hall at Asilomar

I'll be home for a little less than a week. Then I head to the 2017 QGIS Users Conference in Nødebo, Denmark! Lene Fischer produced the video below if you want to know where it is and how to pronounce it :)

In Denmark I'll be teaching another all day workshop. This time the topic will be Data Visualization and Cartography in QGIS.  I'll cover the myriad of great data visualization techniques now available in QGIS including the QGIS2ThreeJS and Time Manager plugins. I was there in 2015 for the first QGIS User Conference and it was a great experience...I highly recommend it. The first few days will be the Users Conference, then there is a Developer meeting and it closes the second week with the Workshops. I'll be heading down to Copenhagen in the middle for a few days to be a tourist. 

2015 QGIS Conference in Nødebo Denmark

From Denmark I fly back to Boston for FOSS4G. I'll be participating in 3 talks and a panel discussion. It will be great to catch up with the #gistribe & #spatialcommunity folks face-to-face. After 3 weeks on the road I'll then fly home. It's going to be an adventure. 

I'll post links to my workshop presentations afterwards and I'll probably write a few summaries once I've recovered.

Teaching QGIS is a Labor of Love

I love teaching QGIS and FOSS4G and I've been doing it a long time. I developed and taught my first semester long Intro to Open Source GIS course in 2009 featuring QGIS v1.0 Kore. In 2014 I co-authored the GeoAcademy curriculum and that led to opportunities to publish several QGIS books. In the last few years I've developed a FOSS public health curriculum with the National Library of Medicine (Community Health Maps). 

I've taught for a lot of schools both face-to-face and online. Plus I've taught countless of workshops all over the U.S. In fact because of the books and the GeoAcademy I have so much material I can assemble a workshop pretty quickly. Teaching...I think I'm pretty good at it. I truly love turning students onto QGIS, especially after they've been indoctrinated into the world of geospatial via Esri. Seeing those light bulbs go off is awesome. Lately my favorite demo is showing students a street reprojecting race between ogr2ogr and ArcMap. It blows minds. Spoiler alert: ogr2ogr wins.

For better or worse I always need to temper my teaching schedule. First of all, it is a lot of work to maintain and update material, and that part is always volunteer. More importantly though, my bills are paid with consulting. Teaching takes time and I need to have enough time to do my consulting work. Plus I like 'doing' more than teaching. There are various ways to teach: there are face-to-face courses at the local colleges and universities, there are online courses on various platforms, there's authoring books, and there are professional training workshops. I've done a little of each.

The local colleges and universities just don't pay part-time instructors well enough. While I wish it were different, I've known this is the reality for a long time and accept it. But I do occasionally teach courses. When I go into teach at a school I just focus on the material and the students. It feels like an act of service. Giving back to the community. I'm cool with this aspect of it. I never wanted to be a full time academic.

Now there are platforms like Udemy where you design a course and make $10 per student. If one went viral you might get a small income, but I'm not sold on that model. Authoring books is good for street cred, but they are a lot of work and have a really short shelf life.

Recently I've been interested in helping agencies and organizations migrate to a FOSS/hybrid workflows. I'm well positioned knowing Esri and FOSS equally well. It's here that I've noticed something interesting. My local State and Federal agencies seem willing to fork out whatever Esri demands for training. However, when it comes to learning QGIS people seem to just want it for free, or close to it. Recently at a local GIS meeting I had a casual conversation with someone wanting to learn QGIS. He then actually said, "You'll come teach us at our office for free right?" 

Part of my work with the Community Health Maps project is teaching a Fulcrum/QGIS/Carto workflow to public health workers. These workshops are all free as they are subsidized by the National Library of Medicine. I've taught dozens all around the nation. People get really excited and afterwards they often talk about getting more training. However, when it comes to signing an actual contract they balk, and believe me I'm a good deal. I'm not trying to get rich. Meanwhile I continually hear about local agencies signing up for Esri workshops costing them hundreds or thousands per student. 

This trend exists for both face-to-face or online training. The GeoAcademy courses have always existed for free online. When we attempted to teach instructor led GeoAcademy courses online we couldn't get anyone to enroll unless courses were offered for $25 or less. The school wasn't even breaking even at that rate. So needless to say the offering didn't last long. I guess when a Udemy course goes for $10 it's a hard sell. But these were instructor led courses where a teacher was available to answer questions, provide feedback and grade labs. 

There seems to be some dynamic, at least in the States, where people know the software is free of charge so they shouldn't have to pay to learn it. I think the open source business model still confuses mainstream GIS users. It also tells me that people see little value in being able to teach it. I know teaching has never been a lucrative profession. However, the fact that people seem willing to pay Esri so much for training makes me wonder what's going on. For now l see it as a labor of love.

A Photo Journal of a Weekend at an Earthship in Taos, NM

This past weekend my wife surprised me with a birthday weekend at an earthship in Taos, New Mexico. It was originally built for actor and activist Dennis Weaver and was completely off the grid. A carbon negative building. All the water is collected in huge cisterns from rainwater, and electricity is from solar. It was built on a steep slope outside of Taos Ski Valley at 8,500'/2,590m. I created a super quick map of where we were. Last Saturday we drove the High Road to Taos to get up there from Albuquerque.

Storms rolling in over the Sangre de Cristo's while we ate lunch in Truchas

We rented it via Airbnb, and the host met us in the valley below Arroyo Seco. The first thing the host told us was, "I'll stop where you'll need to switch into 4wd low." We drove up on the high road to Taos.  Below is a video of us driving up the final bends to the earthship.

Drive up to the earthship

The views of Taos valley and Pueblo Peak were amazing from the front porch.

The view from the front porch!

Above are shots of the main living area looking west (left) and east (right). All the gray water feeds into the flower beds.

The central stairs up to the bedrooms

The bathroom behind a bottle wall

The living room

The living room

Uploaded by geomenke on 2017-05-12.

There was a private trail heading up the ridge. So Sunday afternoon we took a walk. Got about 1,000' above the house before it started getting stormy. With an early enough start we could have made to Lobo Peak. I had to have a few maps in here.

Looking south towards Pueblo Peak

Sunset on the front porch

Sunset on the front porch

On the way back we drove over the Rio Grande Gorge Bridge. At this point the gorge is 565'/172m deep. There was a small herd of bighorn sheep hanging out at the rest area! From there we headed south to Pilar. It's one of the most scenic routes in New Mexico. You drop into the gorge and follow the Rio Grande . We saw several more herds of bighorn sheep along the way.

Rio Grand Gorge looking north

A heard of bighorn sheep who were hanging out near the rest area!

A heard of bighorn sheep who were hanging out near the rest area!

Dropping down into the gorge looking southeast

The Rio Grande

The Rio Grande

Can you spot the two bighorn sheep?

It reminded me why I love living in New Mexico!

At Least 10 Reasons You Should Be Using QGIS

Last Friday I gave a talk at the spring New Mexico Geographic Information Council (NMGIC) meeting. There were ~100 people in attendance. I asked at the outset for people to raise their hands if ArcGIS was their primary GIS software. About 95 people raised their hands! I then asked who used QGIS as their primary GIS. About 2.5 people raised their hands. One person wasn't super confident. Since the topic of the meeting was remote sensing and UAV's I asked if anyone used something different for their work day-to-day. Two others raised their hands. Suffice to say it was an ESRI-centric group of mostly standard desktop users from local, state and federal govt, with some private industry and academics. A broad slice of the local GIS community. 

Since I mostly interact with the FOSS4G/GeoHipster/#gistribe choir, it's easy to forget that the majority of GIS workers in the US still haven't used software like QGIS. Nor do many have the permission to install it. That is changing, but there are still many who have just played with it on the weekend once or twice.

C-hkyCsUMAAeKFY.jpg

So I thought I'd share my experience and go through the main points of my talk. I've done this before at NMGIC. I do something similar every couple of years. But there was something different this time. For whatever reason the message really resonated this time. Even among the die-hard esri users. Maybe it was the animated gif's I used this time around, maybe it was because I used a lot of examples of the cool data visualization capabilities QGIS now has, or maybe people are fed up with esri licensing. I heard a lot about the latter prior to speaking. Anyway I felt like I finally broke through and it was fun. 

First I asked if there were any Mac users in the audience. At least 30 hands went up.

#1) Run QGIS Anywhere

Install it on Windows, Max OS X and Linux. I even have it running on my Chromebook thanks to Alasdair Rae's post. Then there is QField for Android.

#2) Interoperability!

QGIS reads/writes a silly number of file formats. This is where I first found a place for it in my day-to-day. Someone gives you KML/KMZ, GPX, data in a spreadsheet? No problem, and converting that into something more useful like GeoJSON is simple. Esri users can sleep soundly knowing they can read/write File Gdb's. The added ability to work with Spatialite, GeoPackages and PostGIS are perhaps the most important reason to use QGIS, as Mike Miller recently covered in this post

#3) 127 Basemaps Available!

I'll admit I was going for instant gratification. I was the second to last talk of the day and people would be tired. But when you compare this to the 12 that ArcMap has, and consider those 12 are part of the 127, it makes an impression on an esri user. These are available via the QuickMapServices plugin when the contributed pack is enabled.

#4) Geoprocessing!

Back to a more serious topic. This has long been the strength of QGIS. When you combine the ~900 tools in the Processing Toolbox, the batch processing capability, the Graphical Modeler and the Python Console it's a serious package. If you then work with PostGIS and/or R, which are practically fully functional GIS's in their own right, it's state of the art. 

#5) Semi-automatic Classification Plugin

I was trying to cater to the remote sensing crowd. But seriously this is just about the most impressive plugin in the fleet.

  • Download: Landsat | Sentinal-2 | ASTER | MODIS.
  • Dropdown band combination styling
  • Unsupervised and Supervised Classification
  • Spectral signature plots etc. 

There's a great introductory video of the capabilities. If you have 20 minutes it's well worth the watch. 

#6) Variables

I have come to love these. Store any constant. Make the variable Global, Project level or Layer level. I use them to store conversion factors: square meters to acres, meters to miles etc. Store your name as cartographer and use them in the Print Composer. The gif below shows using them in an acreage calculation. It also shows how easy it is to calc fields in an attribute table. Across the board QGIS requires fewer clicks than ArcGIS. 

#7) Cartography | Data Visualization | Styling

This used to be the weakness and now it's a strength. Most of the features I highlighted can't be found in Arc. What I tell people is that several years ago I had a list in my head of things you can do in Arc that you can't in QGIS. Now I have the opposite list and it's growing. Most of the following are on it. The color picker is crazy good. Warning...this section is a little long, and I don't even get into the Print Composer or Atlas generation, which have improved greatly.

The Interactive Styling Dock created by Nathan Woodrow is addictive and I now can't live without it. Tinker with colors and see if they'll work immediately. Works for labels too. If you haven't used it, check it out.

The array of QGIS renderers and sub-renderers is very impressive. There are of course the usual categorical and graduated ones. But there are also Inverted, 2.5 D, Point displacement, Heatmap, Hillshade and geometry generators! I showed two use cases for Inverted Polygon Shapeburst Fills which I use regularly these days. First coastal vignettes (left) and then study areas (right). 

Then there are Blending Modes. When wanting to show something like land ownership over a hillshade image you can use transparency. But the ownership colors become bleached & you don't get full hillshade detail. Instead in QGIS you can use one of 13 blending modes. Below is an example of using the Multiply blending mode on a land ownership layer. The result is full saturation of the colors in the ownership layer and full detail in the hillshade.

And it continues with Live Layer Effects created by Nyall Dawson. Quickly add inner glows, outer glows, drop shadows, blur effects etc., to your vector features. 

Copy/Paste layer styles. I know you can do this in ArcMap by importing symbology. However, it's just easier and more complete in QGIS. Right-click on a layer and copy the style, then right-click on the other layer and past the style. This includes label settings too. 

And if you need 3D there is the QGIS2ThreeJS plugin. It lets you set up a 3D view in QGIS. It writes out some javascript files and an html file and the result opens in a browser. It's very responsive. Below is a view of the Sangre de Cristo mountains outside of Santa Fe, New Mexico showing some wilderness proposals. Google imagery is draped on a DEM.

#8) Expressions and Functions

The array of functions and variables available in the QGIS select by expression window is awesome, especially when compared with ArcGIS which has just string, date and numeric. Plus these can be used in data defined variables, the print composer, the Atlas generator, rule based styling etc. In the case of data defined variables I doubt people have even thought of use cases for exposing all of this in each piece of a style or a label. But it's there if you ever need it.

#9) Geometry Generator Symbol Layers

I don't know if this really deserves a spot in the top 10, but I just discovered them and think they're cool. It's another case where it feels like the developers of QGIS are thinking outside the box and being creative with geo data. You can use this sub-renderer along with the expression engine to modify geometries just while rendering features. Plus the resulting geometry does not have to match the original. For example use the expression: centroid($geometry) on a polygon layer to render it as centroids. Or use: buffer ($geometry, -4000) to render a polygon layer with internal negative buffers of 4000 meters. Below shows the Colorado Game Management Units rendered as normal black polygons, then as light blue internal buffers and finally as red centroids.

#10) Virtual Layers

These are like database views. You can define a layer based on an SQL query. However it doesn't matter what file format your data is in! So you can use spatial SQL on shapefiles, KML, CSV's etc. Below is an example of creating a buffer view of some dialysis clinic points. 

#11) Some Things Are Just Easier in QGIS

There are a lot of simple tasks where QGIS requires fewer clicks, or is just more straightforward. The Save vector layer as... is a great example of that.

  • Reprojecting layers
  • Converting between file formats
  • Being able to read so many file formats
  • Editing (this is an area I wish I'd had time to cover)

#12) It's Rapidly Growing and Evolving

With a new stable release every four months, new features are being added all the time, QGIS is really growing fast. Due to this rapid pace each spring there is a long-term release created. This works better for production environments. Bug fixes are backported to this over the course of the year.

Another plus for QGIS is that you can have multiple versions installed with no issues. For example, I have the stable release, the long-term  release and the bleeding edge nightly release running.

We're also at a cool time in the QGIS development cycle. There is a major new release due out in September - QGIS Version 3.0. This incorporates a new version of Qt and Python 3. It looks to be faster and have quite a few new features. It will also sport a new logo.

2017-05-02_083329.jpg

#13) Help Resources

There are a myriad of support options these days.

#14) It's Free and Open Source!

I was also clear that I'm not trying to get you to stop using ArcGIS. You can still use QGIS and have an ArcGIS license. There is room in most offices for a hybrid solution to geo issues. In fact, it would be difficult to make an argument against it. These are just tools. You wouldn't limit yourself to just one screwdriver. Why limit yourself here? QGIS is free to install and check out. For example, if you need Spatial Analyst tools but don't have the license, use QGIS. If you need that Erase tool but don't have the license, use QGIS. Although I do think it's only a matter of time until you realize you can do everything you need with QGIS. 

Plus with QGIS, if there's a feature you need you can develop it in-house or sponsor it. A year ago I submitted a feature request. I realized there was no easy way to get QGIS to style a discrete raster. For example, one with vegetation types or land use categories. The feature request just sat there. Then Nyall Dawson came out with this post which got me thinking. About the same time I saw a post in a listserv about this issue. I ended up having a conversation with a few QGIS users about it. We decided to put together a proposal. Stéphane Henriod deserves all the credit here. We pitched it to Nyall Dawson (North Road) who returned a quote. We realized that while none of us could afford it individually, collectively we could. Within a few weeks the feature was done and available via the nightlies. 

Discrete raster styling will be a new feature when 3.0 comes out. It's minor but was a very empowering experience. As I've heard Anita Graser say, 'It's a do-ocracy.' If you want something done, don't just complain, you actually have the power to change it!

Like I said at the outset, for whatever reason my talk was really well received this time around. I had several die hard esri users come up to me afterwards and tell me some version of, "I always thought yeah yeah yeah but I have Arc..., but now I think I'm going to download QGIS this weekend." I honestly think some of the styling capabilities are mind blowing to someone who has been locked in an esri box. Plus many don't realize that QGIS has tools like the Graphical Modeler, or that you can read a ESRI File Geodatabase. Once people realize what it can do it's a no-brainer. It was really gratifying to finally get through!

They also held a raffle and I won a drone!!! All in all a great day!

Coffee, Community Health Maps & My Favorite Coffee Shops Visited in 2016

For the last couple of years I've been working on a project called Community Health Maps for the National Library of Medicine. The goal is to empower public health organizations working with underserved and at risk populations with mapping technology. We aim to help people who don't have backgrounds in computer science or geospatial technology, and don't have budgets for ArcGIS licenses. I've helped develop a program to show these people how they can 1) use Fulcrum to map their communities with smartphones, 2) map that data with Carto and 3) go even further with QGIS. 

Coffee Brewers

Coffee Brewers

This work takes me all over the country teaching half-day workshops. I've got it down at this point. In 3-4 hours I can teach 20-40 people who have never done any kind of map work how to collect data and map the results in Carto and QGIS.

I'm also a coffee geek. I've been hooked by the third wave coffee bug.  I take my coffee seriously as evidenced by my collection of brewers! My wife also compiled the video below of coffee roasters we tried in 2016.

For each training location, I assemble local data from OpenStreetMap and/or local sources. I always include a layer of the local coffee shops to try. After all, I'm going to try them anyway. It's a hobby of mine. Plus it makes it a little more fun, after a few hours of training, to have them open up a QGIS map showing the training location and some coffee shops to try. I usually google 'pour over' coffee in the area, and am sure to exclude all the Starbucks. To me one key to a quality coffee shop is the length of their menu. The shorter the menu the better. For example, I love this menu from Ninth Street Espresso in NYC.

In the last year or so I've been to Charleston 3 times, Seattle twice, along with Spokane, Honolulu, Lawrence, Washington DC and Salisbury MD. I've also been to NYC, Raleigh NC, Portland OR and Denver CO for other business trips. I finally got around to compiling a map of the best coffee shops I've been to in the last year. There are some good ones not on here, these are just the best of the best.

Of these Milstead and Co in Seattle is my favorite. They aren't a roaster but it is simply the best coffee shop I've ever been to. They make each each cup of coffee individually via AeroPress and offer an amazing selection of coffees to try. They are followed closely by Coava in Portland, Toby's Estate in Brooklyn, Black Tap in Charleston, and Boxcar in Denver.  Below are some shots from these coffee shops. Coffee and GIS were made for each other!

 

Black Tap - Charleston

Milstead & Co - Seattle

Toby's Estate - Brooklyn

Boxcar Coffee Roasters - Denver

Coava Coffee - Portland

If there isn't a good coffee shop I'll bring my Porlex mini grinder, some good beans an my Aeropress. Makes a great cup o' joe in my hotel room! Try it!

A Trip to Maryland to Teach Three Mapping Workshops

Last week I traveled to Maryland. I taught two workshops at the Prince Georges County Department of Social Services for people working on homeless issues. As with most Community Health Mapping workshops, all attendees were novices to mapping technology. However, in the first hour they all built a data collection form in Fulcrum and went outside to collect some data around the building.

Prince Georges County Community Health Mappers

Prince Georges County Community Health Mappers

The attendees represented a variety of organizations including many working with YouthREACH Maryland. REACH is an acronym standing for Reach out, Engage, Assist, & Count to end Homelessness. It is an effort to obtain accurate, detailed information on the number, characteristics, and needs of unaccompanied homeless youth in Maryland. Other organizations represented at these workshops included:

  • Maryland's Commitment to Veterans
  • Maryland Department of Planning
  • Prince Georges Community College
  • St Ann's Center for Children, Youth, and Familes
  • Maryland Multicultural Youth Center
  • So Others Can Keep Striving (S.O.C.K.S)
  • Sasha Bruce Youthwork
  • Lifestyles of Maryland.

In the final two hours of the workshops attendees learned how to map the data they collected in both Carto and QGIS. We also had time for a brief discussion about how CHM could be used in their projects. There were a lot of ideas shared about how the technology could help community engagement.

The afternoon workshop attendees feeling accomplished after completing their Carto maps!

The afternoon workshop attendees feeling accomplished after completing their Carto maps!

After the two PG County workshops, CHM traveled across the Chesapeake Bay bridge to Salisbury University on the eastern shore.

The following morning I taught a workshop geared towards social work students at Salisbury University. Attendees went through the CHM workflow and were introduced to FulcrumCarto and QGIS. Below is a map of data collected around the student center in Carto.

Salisbury University Data Collection in Carto

Salisbury University Data Collection in Carto

The workshop concluded with a short introduction to working with data in QGIS.

Salisbury University Data Collection in QGIS

Salisbury University Data Collection in QGIS

That afternoon I'd hoped to catch up with Art Lembo who wrote How Do I Do That In PostGIS? I realized at the last minute that the author of this little book I've had on my bookshelf works at Salisbury University. Unfortunately he was under the weather. FOrtunately I had time to drive to the Delaware shore for a quick beach walk.

The next scheduled workshop for the Community Health Maps team will be at the Teaching Prevention 2017 Conference in Savannah, Georgia. That conference takes place from April 5-7th. If you are interested in learning this technology this workshop will be a great opportunity!

Serving as an Expert Witness in a Trial...Almost

The Case: A couple of years ago I was hired by a law firm to create map exhibits in support of a lawsuit. It involved the Las Conchas Fire. This wildfire burned in late summer of 2011 in the Jemez Mountains north of Albuquerque and west of Los Alamos, New Mexico. At the time it was the largest wildfire in New Mexico's history. In the end it burned 156,000 acres. This area includes much of Bandelier National Monument and threatened Los Alamos National Labs. 

By John Fowler from Placitas, NM, USA - Las Conchas FireUploaded by PDTillman, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=15748521

By Andrew Ashcraft of the Granite Mountain Hotshots 

The fire was contained by August 3rd. As chance would have it, a huge monsoon thunderstorm hit on August 21st causing severe flooding to Cochiti Pueblo which lies downstream from the burn area.

My involvement: I was working for the plaintiff's which included both Cochiti and Jemez Pueblos. The lawsuit was against the Jemez Mountains Electric Cooperative, Tri-State Generation and Transmission Association and the U.S. Forest Service for negligence in causing the fire. The map exhibits I made were pretty pedestrian by most cartographic or GIS perspectives. They were simple maps from existing data that put the extent of the fire and subsequent damages in context. However, I've never had to document a project to the extent I did for this. Data sources, dates and times, methods, software, phone calls, email exchanges all had to be documented thoroughly.

Outcome of the Lawsuit: In late 2015 a jury found that the two utility companies were 95% responsible for the negligence that lead to the ignition of the fire. The fire started when a diseased aspen tree fell onto the power line. They basically found that the tree should not have gotten to the point that it could fall on the line. The utility companies should have preemptively cut the tree, which was clearly visible from the right-of-way.

Expert Witness for Damages: In 2016 I found out that there would be a follow on trial to assess damages caused by the fire. I would be needed as an expert witness. At first it felt exciting, but it wasn't long until it felt daunting. Last summer I was deposed by Tri-State. I learned very quickly why they tell you to use Yes and No as answers whenever you can. Answering in any other way sent the attorney down a rabbit hole of rapid fire questions in search of some nugget he could use. It only lasted a little more than an hour but it felt like three. It was especially challenging because the attorney knew nothing of map scale, watershed delineation, or geospatial technology. At one point I was asked about which watershed a point fell in. I wasn't sure what the point of the question was. All I could say was, "According to this dataset yes." That lead to more questions, at which point I tried to explain that they are called HUC's, and that they are scale dependent etc. This lead to questions about best practices and ethics. Throughout I was honest and just tried to keep my composure.

Early this year I was prepped to appear on the stand. I met with the attorneys several times to practice. I felt very ready even for the unknown questions Tri-State would cross examine me with. This was going to be a jury trial and my teaching experience definitely helped me feel more prepared to explain details to laypeople. However, the night before I was to take the stand, I found out that the defense had accepted all my exhibits. They didn't need me to take the stand after all. It was seriously anti-climactic. 

The good news was that I was told that my exhibits appeared every day of the two week trial. They had been helpful to the case. In the end Tri-State settled. I don't know all the details, but am glad to have helped the Pueblos get something in return for all the damage done by the flooding. If I have to do this again I know it will be easier the second time. 

The Concise 2016 Year in Review...Another Good Year!

Professionally

  • ~ 400 maps made...roughly
  • Numerous analyses done, some big, some small
  • Worked for 21 clients
  • Authored Discover QGIS with Locate Press
  • Co-authored Mastering QGIS Second Edition with Packt Publishing
  • Began learning R & working with GeoPackages, getting better at PostGIS/SpatiaLite and brushing up on Python
  • Continued to migrate all GIS work to FOSS4G
  • Connected with a lot of great geospatialists via social networking
  • Taught Community Health Map workshops in: 
    • Seattle WA (twice)
    • Honolulu HI
    • Spokane WA
    • Bethesda MD (twice)
  • Gave talks at:
  • Authored 17 Community Health Mapping blog entries
  • Taught 8 GIS courses at UNM Continuing Education
  • Travelled to: 
    • Seattle (twice)
    • Lawrence KS
    • Raliegh
    • New York City
    • Washington DC
    • Orlando FL
    • Bisbee AZ
    • Spokane WA
    • Honolulu
    • Meeker CO
    • Denver (twice)
    • Red River NM

    Personally

    • Worked out 205 times...20 more than last year!
    • Climbed my 21st fourteener (Mt Bierstadt)...a work in progress
    • PR dead lift – 355lb
    • PR back squat – 315lb
    • Walked 410 miles...ah technology!

    What's New in Mastering QGIS - 2nd Edition?

    Myself, Rick Smith, Luigi Pirelli and John Van Hoesen are excited to announce the expanded second edition of Mastering QGIS. The goal of this book is to help intermediate and advanced users of GIS develop a deep understanding of the capabilities of QGIS while building the technical skills that would facilitate in making the shift from a proprietary GIS software package to QGIS. It is available in both hard copy and digital versions from Packt Publishing and Amazon.

    The book, which begins with a Foreword by Tim Sutton (QGIS Project Chairman), adds one new chapter, and 70 new pages from the first edition. Many new features have arisen in the last year. This book covers them all with step by step examples. This edition is updated to the latest long-term release version (2.14), and includes descriptions and examples of many new features. For example, this includes a new chapter on Advanced Data Visualization which covers live layer effects, QGIS2ThreeJS and Atlas generation. 

    What the book covers:

    Chapter1,A Refreshing Look at QGIS, reviews installation and basic functionality of QGIS that are assumed knowledge for the remainder of the book. New material includes user interface themes and working with Custom QGIS variables.  

    Chapter 2,Creating Spatial Databases, covers how to create and edit spatial databases using QGIS. While QGIS supports many spatial databases, SpatiaLite will be used in this chapter. First, core database concepts will be covered, followed by the creation of a spatial database. Next, importing, exporting as well as editing data will be covered. The chapter concludes with queries and view creation.

    Chapter3,Styling Raster and Vector Data, covers styling raster and vector data for display. First, color selection and color ramp management are covered. Next, single-band and multi-band raster data are styled using custom color ramps and blending modes. Next, complex vector styles and vector layer rendering are covered. Rounding out the chapter is the use of diagrams to display thematic map data. New material includes the numerous updates to the data Styling interface and all the new renderers (2.5D, heatmap, point displacement, inverted polygon & GRASS edit). 

    Chapter4, Preparing Vector Data for Processing, covers techniques useful for turning raw vector data into a more usable form. The chapter starts with data massaging and modification techniques such as merging, creating indices, checking for geometry errors, and basic geoprocessing tools. Next, advanced field calculations are covered, followed by complex spatial and aspatial queries. The chapter ends by defining new or editing existing coordinate reference systems. New material includes: new geometry checker tools and conditional formatting for attribute table cells.

    Chapter5,Preparing Raster Data for Processing, covers the preparation of raster data for further processing using the GDAL menu tools and the Processing Toolbox algorithms. Specifically, these include reclassification, resampling, rescaling, mosaics, generating pyramids, and interpolation. The chapter concludes with raster and vector data model coversions. New material includes the Slicer plugin and the new raster alignment tool.

    Chapter6,Advanced Data Creation and Editing, provides advanced ways to create vector data. As there is a great deal of data in tabular format, this chapter will cover mapping coordinates and addresses from tables. Next, georeferencing of imagery into a target coordinate reference system will be covered. The final portion of the chapter will cover testing topological relationships in vector data and correcting any errors via topological editing.

    Chapter 7,Advanced Data Visualization is a brand new chapter! In it we provide advanced ways to display your analysis results. QGIS has a greatly expanded repertoire of layer styling and display options. In this chapter, you will learn how to use Live Layer Effects, utilize the inverted polygon and 2.5D renderers, create an Atlas in the Print Composer and use the QGIS2ThreeJS plugin to create a 3D view of your data.

    Chapter 8, Exploring the Processing Toolbox, begins with an explanation and exploration of the QGIS Processing Toolbox. Various algorithms and tools, available in the toolbox, will be used to complete common spatial analyses and geoprocessing tasks for both raster and vector formats. To illustrate how these processing tools might be applied to real-world questions, two hypothetical scenarios are illustrated by relying heavily on GRASS and SAGA tools. New material includes working with R tools and Lidar data with LASTools.

    Chapter9, Automating Workflows with the Graphical Modeler, covers purpose and use of the graphical modeler to automate analysis workflows. In the chapter, you will develop an automated tool/model that can be added to the Processing Toolbox.

    Chapter10, Creating Plugins for PyQGIS Problem Solving, covers the foundational information to create a Python plugin for QGIS. Information about the API and PyQGIS help will be covered first, followed by an introduction to the iface and QGis classes. Next, the steps required to create and structure a plugin will be covered. The chapter will be wrapped up after providing you with information on creating graphical user interfaces and setting up debugging environments to debug code easily.

    Chapter11, Python Analysis Scripting with QGIS, provides topics for integrating Python analysis scripts with QGIS outside of the Processing Toolbox. Layer loading and management are first covered, followed by an exploration of the vector data structure. Next, programmatic launching of other tools and external programs are covered. Lastly, the QGIS map canvas is covered with respect to how a script can interact with the map canvas and layers within.

    Discover QGIS Is Out in Print!

    I'm excited to announce my latest QGIS book! Called Discover QGIS, it is the workbook for the award winning GeoAcademy curriculum. It is essentially 5 college courses full of labs! It comes with all the data, challenge exercises and solution files. Great for learning GIS, QGIS or for use in the classroom.

    The GeoAcademy is the first ever GIS curriculum based on a national standard—the U.S. Department of Labor’s Geospatial Competency Model—a hierarchical model of the knowledge, skills, and abilities needed to work as a GIS professional in today’s marketplace.

    Originally written for QGIS v2.4, the GeoAcademy material in this workbook has been updated for use with QGIS v2.14, Inkscape v0.91, and GRASS GIS v7.0.3. This is the most up-to-date version of the GeoAcademy curriculum. To aid in learning, all exercise data includes solution files.

    Thoughts on FOSS4GNA 2016

    FOSS4G has been my favorite conference since I attended the first Mapserver meeting in 2003. I've attended each North American installment since then...except for the 2012 NA meeting in DC. I shared about this in my talk Adventures of a Solo GIS Consultant. (The map for my talk is below)

    The 2016 edition FOSS4GNA did not dissapoint. In fact it was one of the best, and not because I fell in love with Raleigh the way I did with Victoria in 2007, or Portland in 2014. Raleigh was nice, but it was more about the conversations between the talks. I loved that the organizers gave us so many long breaks. The rain all week also helped keep me inside :)

    Perhaps it is because I work for myself that being around all these like minded folks is so stimulating. Perhaps it's because I get to meet people I know from Twitter, face-to-face. I loved the moments when I was standing in a group of people and we're all introducing ourselves, by our Twitter handles, like "I'm @spara." Perhaps it's being around some of the smartest people I know. I know it's a little of all of these. FOSS4G is more than the sum of it's parts. I always learn new things, but if that is all it was, I wouldn't keep going back. It's because there is a community of people behind the twitter handles. OsGeo has done a great job of fostering a community with these conferences.

    I met a lot of people I knew from social networking like @sarasomewhere, fellow Locate Press author @PetersonGIS, #gistribe members @gisn8, @UUDreams, @MicheleTobias & @spara. I made some new friends too, like @GuidoS & @TinaACormier, and it is always nice to be able to catch up with people like @rjhale.

    The workshops on Monday were great. I attended the GDAL/OGR workshop taught by Sara Safavi & Sasha Hart and the Getting the most out of QGIS with Python by Chris Daley. Each had a good mix of review and new material. 

    The BoF sessions were a highlight. I sat in on QGIS, #gistribe and Women in GIS. The latter was a great discussion and I really appreciated hearing the experiences women have at FOSS4G and in the workplace. I've seen the numbers of women increasing over the years at FOSS4G, but it was good to hear how it could be more inclusive.

    Of course there were many great talks. Some of my highlights were:

    • State of the QGIS Project by Larry Shaffer
    • Awaken the QGIS Within by Gretchen Peterson
    • Uncovering Ancient Mound Builders Using Open Data and FOSS Software by Calvin Hamilton
    • Cartography with Inkscape by Michele Tobias
    • WTFGL: a beginner's guide to the future of open source web mapping by Lyzi Diamond
    • Empirical Mining of Large Data Sets Help to Solve Practical Large-Scale Forest Management and Monitoring Problems by Bill Hargrove

    I also greatly underestimated the keynote addresses. Each day I'd look at the title and say, "Maybe I can skip this and sleep in, or go get a good breakfast." But I ended up attending each one, and they were all fascinating. Each a little out of the box and provacative in just the right way.

    Thanks to the organizing committee for putting together a great conference. I thought the venue, the session schedule, the food and the communication were all outstanding. 

    FOSS4GNA Raleigh Organizing Committee

    I wish I had the budget to go to the 2nd QGIS meeting in Gerona or FOSS4G in Bonn. Realistically though the next time I'll be able to add to my map is FOSS4G in Boston in 2017. So hopefully I'll see you there!

    PS...after FOSS4GNA I met my wife in NYC to celebrate my birthday. NYC didn't dissappoint. The map of our adventures is below!

    2016 Brings Two New QGIS Books!

    It's been such a busy year I haven't even had time to blog. Now that I'm sitting in my hotel room in Raleigh settling in for another FOSS4G, I finally have a bit of time. I've been doing a lot of GIS analysis, cartography, teaching, travelling to teach workshops, and blogging at Community Health Maps. I have also been working on the second edtion of Mastering QGIS and a brand new book Discover QGIS. Both books should be out in the next couple weeks!

    Mastering QGIS - 2nd Edition will be an updated version of last years book. All the material is being updated to the latest long-term release of QGIS v2.14. It wil also feature a new chapter on Advanced Data Visualization. This new chaptter will cover use of Live Layer Effects, 3d mapping with the 2.5D renderer and the QGIS2ThreeJS plugin, use cases for inverted polygon shapeburst fills, and atlas generation.

    Wiith Discover QGIS, the award winning GeoAcademy curriculum will be available in a workbook format. The material has been updated for use with QGIS 2.14, Inkscape 0.91, and GRASS GIS 7.0.3. The material is also backwards compatible to QGIS v2.8 despite minor GUI changes. It therefore represents the most up-to-date version of the GeoAcademy curriculum. It will be released in the coming weeks. It will include full solution files and a forward by Dr. Phil Davis. 

    Look for both offerings soon!

    The Concise 2015 Year in Review...A Good Year!

    Professionally

    Personally

    • Celebrated my grandmothers 100th birthday
    • Travelled to Denmark, Vermont, New York City, San Francisco, Colorado, Bisbee AZ and Charleston SC.
    • Worked out 184 times...not bad for an aging GeoHipster!
    • Walked 370 miles...ah technology!
    • Climbed my 20th 14’er (Mt Yale)...a work in progress
    • PR bench press – 215lb 3x
    • PR dead lift – 300lb – 5x
    • PR back squat – 205lb – 4x

     

     

    NMGIC 'Green Chile' Outstanding Service Award

    At the most recent New Mexico Geographic Information Councilmeeting I was honored to be awarded the NMGIC Green Chile Outstanding Service Award. Dr. Ken Boykin, from the New Mexico Cooperative Fish and Wildlife Research Unit, won the Red Chile award. Not sure which is hotter:) 

    I'd like to thank NMGIC for this award. I was very surprised and as I told the NMGIC President, "I feel like I'm just getting started!"

    Dr. Ken Boykin and Kurt Menke

    First User/Educator/Developer QGIS Conference - Nødebo Denmark

    I finally have a moment to report back on the first ever international QGIS User/Educator/Developer conference in Nødebo, Denmark. It was certainly one of the best GIS conferences I've been to. It had a very intimate feel. The setting at the Forestry School of the University of Copenhagen (Skovskolen) was beautiful and peaceful. It was located in one of Denmarks largest forests and there were numerous trails and forest gym play areas.

    Danish forest (Gribskov) near the conference groundsI had a lot of great conversations, some with old friends, and some with people I've known only from the QGIS-sphere. It was exciting the meet the latter face to face! There were ~150 attendees from 25 countries, and being one of only two Amercans was stimulating and refreshing.  QGIS 2015 Attendee Map

    After Jeff McKenna's keynote I presented on the FOSS4G Academy.

    OsGeo President Jeff McKenna opening the conferenceThere were some really good talks and workshops over the first two days. One highlight was a fruitfull round table discussion on education, curricula and certification. I'm excited to announce that our FOSS4G Academy material are being adopted by the QGIS project. This is the best chance for this material to survive and grow past 2015. 

    My personal conference highlights included: 

    • Matthias Kuhn presenting QField - this will be a mobile version of QGIS
    • Nyall Dawson and Andreas Nuemann showing new advances in rendering and the Print Composer - there are a lot of great tools coming out in the near future
    • Anita Graser showing all the new features of the Time manager - it's becoming a very powerful data visualization tool
    • Tim Sutton leading an open discussion on the future of QGIS. It's not clear when version 3.0 will be released or what upgrading to Qt5 and Python 3 will involve. However, the QGIS development team will give us plenty of lead time before that change happens.
    • The farewell dinner held in a huge tent in the forest. The Danes know how to throw a party!Farewell dinner
    • Meeting people I've known only via the QGIS-sphere including my co-author Luigi Pirelli and conference organizer Lene Fischer!Myself and Luigi Pirelli - Mastering QGIS!
    • Making new Danish friends

    Group shot QGIS 2015

    Thanks to Lene Fischer and the staff and students at the University of Copenhagen Forestry School for organizing a great conference! Here's hoping there is a follow on educational conference there next summer!

    My wife and I posing with Lene Fischer

    I didn't stick around for the developer meeting and the hackfest. I instead spent some time sightseeing and relaxing on the north coast of Zealand in a town named Gilleleje.Sunset over the Kattegat

    Excited to be Attending the 1st QGIS Conference!

    Monday I'm heading to Denmark for the first time to attend the first joint developer | user | educator QGIS conference. In 2003 I attended the first Mapserver Users Meeting and it feels like there are some similarities. That meeting was also held at a Forestry College (St. Paul, MN) and had about 150 people as are exptected in Nødebo. That meeting felt cutting edge and exciting. It was several years before FOSS4G's came into existence. This feels like it might have a similar excitement to it.

    First Mapserver Users Meeting (2003)

    I'll be one of only two American attending. I am anticipating meeting many of the European QGIS developers and bloggers that I only know from the Twittersphere. This includes one of my co-authors of Mastering QGIS. There will be some great talks and workshops. Before and after my wife and I will be able to tour the Danish countryside. Stay tuned...

    Mastering QGIS is Ready for your Bookshelves!

    It is with great excitement and pride that I announce our book Mastering QGIS has been published! I co-authored this book with Dr. Richard Smth, Dr. Luigi Pirelli and Dr. John Van Hoesen. It is available as both an eBook and in hard copy from Packt Publishing and Amazon.

    Mastering QGIS Cover

    QGIS is the leading alternative to proprietary GIS software. Although QGIS is described as intuitive, it is also, by default, complex. Knowing which tools to use and how to apply them is essential to producing valuable deliverables on time.

    Starting with a refresher on QGIS basics, this book will take you all the way through to creating your first custom QGIS plugin. By the end of the book you will understand how to work with all the aspects of QGIS, and will be ready to use it for any type of GIS work.

    The introductory section servers as a quick start guide for those with little QGIS experience. It includes directions for installing QGIS on all the major platforms, reviews the layout of QGIS Desktop and Browser, and covers adding data, working with projections, querying tables, creating maps and finding and installing plugins.

    From the refresher, you will learn how to create, populate and manage a spatial database and walk through styling GIS data, from creating custom symbols and color ramps, to using blending modes. In the next section, you will discover how to prepare vector and raster data for processing and discover advanced data creation and editing techniques, such as geocoding, georeferencing and topological editing. The last third of the book covers more technical aspects of QGIS, including working with the Processing Toolbox, how to automate workflows with batch processing, and how to create graphical models. Finally, you learn how to create and run Python data processing scripts and write your own QGIS Plugin with pyqgis.

    This book is the most thorough tutorial for everyone needing a free and open source desktop GIS.