Accessing ESRI File Geodatabases on Arch Linux

First up, download the File Geodatabase API from here.  You’ll need create an ESRI Global account and agree to the API’s EULA.  Once the API’s tarball is downloaded, extract it and keep track of where you put it.  Next up, download GDAL’s PKGBUILD, a patch, and changelog from here.  All three files need to be in the same directory.  Next, edit the PKGBUILD to look for the API.  Personally I put the API in /opt so I added:

--with-fgdb=/opt/FileGDB_API

and then ran mkgpkg.  Once GDAL finished compiling pacman -U upgraded gdal.  Now I can go into QGIS, click Add Vector, click the Directory radio button, and select File GDB in the file type drop down.  Easy peasy.

Resetting the Edge 500′s battery meter

If your Edge 500′s battery meter gets stuck at 100% just disable the auto shutoff feature and let the battery drain. The next time you charge it up the battery meter will reflect the actual amount of charge you have remaining.

Rotating a QuickTime movie

I was handed a QuickTime movie that was recorded with an iPad that was held upside down.  Luckily ffmpeg makes this easy.

ffmpeg -i <input_file> -strict -2 \
-vf "transpose=1, transpose=1" <output_file>

The -strict -2 allows ffmpeg to use the experimental aac codec, and -vf “transpose=1, transpose=1″ rotates the video by 90 degrees twice.

Installing Postgis 2.1.0SVN on Arch

I wanted to try the new Tiger geocoder extension that’s coming with PostGIS 2.1.0.  I set up a PKGBUILD to upgrade the 2.0.2 that’s in Arch’s repository.

Since this is a major version upgrade a hard upgrade is required.  The upgrade went smoothly except the spatial_ref_sys table wasn’t populated.  Running the spatial_ref_sys.sql script found at /usr/share/postgresql/contrib/postgis-2.1 solved that problem.

Changes to building QGIS 1.9 on Arch

Recently Arch added QT5 to their repositories and renamed the old QT package to QT4.  This causes a little confusion for the qgis-git PKGBUILD since it lists the old qt package as a dependency.  It’s an easy fix, just change qt to qt4 and add

-DQMAKE_EXECUTABLE=/usr/bin/qmake-qt4

to the ./configure options.

Once 1.9 is compiled and built you can see how far along this beta version has come.  The new loader built into the DB Manager plugin works flawlessly.  This is my favorite new feature in 1.9 / 2.0.  It makes it so if you can add a dataset to a QGIS map, it only takes a few clicks to import that data into a new PostGIS layer.  It really comes in handy with layers created by ad-hoc queries.

Plugin developers have been hard at work adjusting their plugins to work with the new API.  OpenLayers has been updated, just upgrade through the Fetch Python Plugins menu and you can once again display your Google, Bing, etc maps in QGIS.

 

Half off PostGIS In Action 2nd Edition!

James Fee found a 50% off coupon code for PostGIS In Action’s 2nd Edition.  Not only does the coupon code get you 50% off the 2nd edition, you also get the 1st Edition, and a PDF download of a preview of the 2nd edition as it is in progress.   Currently they’re up to chapter 5, and so far it is awesome.

The book really pushes OpenJump due to its ability to run and display ad-hoc PostGIS queries.  They do a run down of various OSGeo desktop programs and in their QGIS writeup they lament the fact that QGIS doesn’t have out of the box ad-hoc capabilities like OpenJump.  I’m not sure about that though, the DB Manager function added in 1.8 seems to be pretty complete.  You can send your query results to the map canvas, DB Manager has syntax highlighting and autocomplete, it’s awesome.  The 1.9 version is even better since it adds import / export functions.  You can use the import function to import shapefiles or any other format OGR supports.  It also allows you to import your ad-hoc results into your PostGIS database.  You can take your tabular results and copy / paste them to a text file or spreadsheet as tab delimited data.

The one limitation to DB Manager / QGIS is your ad-hoc queries have to have a unique integer field if you want to see the resulting layer.  I usually get around that by using Postgres’s row_number() window function.

Installing PGRouting on Arch Linux

PGrouting adds routing functionality to a PostGIS database.  For Arch users you can install it from AUR.  If you want PGRouting’s Travelling Sales Person (TSP) functionality installed you’ll need to install Gaul (available from AUR from gaul-devel) and if you want Driving Distance (from AUR as cgal).  After you install PGRouting run

sudo ldconfig

so you’re system knows where to find the new PGRouting libraries.

Next up is to add PGRouting to your PostGIS database.  PGRouting doesn’t have an extension yet so you’ll have to run some sql files.  I like to install PGRouting into its own schema so I start psql and use:

CREATE SCHEMA pgrouting;
SET search_path pgrouting, postgis;
\i /usr/share/postlbs/routing_core.sql
\i /usr/share/postlbs/routing_core_wrappers.sql
\i /usr/share/postlbs/routing_tsp.sql
\i /usr/share/postlbs/routing_tsp_wrappers.sql
\i /usr/share/postlbs/routing_dd.sql
\i /usr/share/postlbs/routing_dd_wrappers.sql

You may get some errors like

ERROR:  language "C" does not exist

If you do, just open the file you tried to run and find the line referenced.  Change the “C” to “c” and then re-run the .sql file.

Now all that is left to do is add the pgrouting schema to your search path.  Personally I use an ALTER DATABASE statement, but other people may prefer to make the change on a per user basis.

Follow

Get every new post delivered to your Inbox.