184

I have spent around 2 days to find the way to open GDB (ESRI Geodatabase) in QGIS (or any other open source software) but still without success.

I have downloaded the newest OSGeo4W installer and tried the setup - express desktop install - all packages, as well as advanced install incl gdal-filegdb.

Can you describe a more detailed procedure, including installation and how to open .gdb in QGIS (OSGeo4W installation)?

0

7 Answers 7

213

Update December 2017

Now you can simply drag&drop .gdb file (directory) into QGIS. This is read access to File Geodatabases only. If you require write access please read further.

Update July 2015

It is time to bring this answer a bit more current as some elements of FileGDB support in QGIS have changed. I am now running QGIS 2.10.0 - Pisa. It was installed using the OSGeo4W installer.

What has changed is that upon the basic install of QGIS, File GDB read-only access is enabled by default, using the Open FileGDB driver. Credit for first noting this must be given to @SaultDon.
Read/Write access may be enabled using the FileGDB driver install through the OGR_FileGDB library. The library needs to be enabled using the process below, either when you install QGIS, or individually. More detail about the drivers is below:

  • FileGDB driver: Uses the FileDB API SDK from ESRI - Read/Write to FGDB's of ArcGIS 10 and above
  • OpenFleGDB driver: Available in GDAL >= 1.11 - Read Only access to FGDB's of ArcGIS 9 and above

When you add a Vector Layer, you simply choose the Source Type based on the driver you want to use.
ESRI FileGDB Driver Esri FileGDB Driver

Open FileGDB Driver Open FileGDB Driver

The process below shows in more detail the steps to install QGIS from the OSGeo4W installer, ensure the OGR_FileGDB library is installed, then load layers from a File Geodatabase.

  1. Download and run osgeo4w-setup-x86.exe for 32bit or osgeo42-setup-x86_64.exe for 64bit from OSGeo4W.

  2. Choose Advanced Install, then Install from Internet. Choose your root and local package directories, and then your connection type, in my case, "Direct Connection". Once you click next, it will bring up a screen with a number of collapsed menus. Select Installation Packages

  3. Expand the "Desktop" menu. Find the entry for "qgis: Quantum GIS (desktop)". In the "New" column, change entry from "Skip", to show version 2.10.0-1. Choose QGIS install entry

  4. Expand the "Libs" menu. Find the entry for "gdal-filegdb: OGR FileGDB Driver". In the "New" column, change the entry from "Skip", to show version 1.11.2-1. Select GDAL File GDB Driver

  5. Once you click Next, it will install QGIS and all of the associated libraries. Once this is completed, open Quantum GIS, and Choose "Add Vector Data". Change the option to "Directory". This is where you choose the driver as shown above. Choose FileGDB directory and driver

  6. Browse to the File Geodatabase and select the directory. Click "Open" Select File GDB location

  7. Select a Vector Layer and press "Ok". Please note that the FileGDB API Does not support Raster Images. Select Vector Layer

  8. As you can see, the selected layer loads in. Using the Esri driver, editing is possible. If you use the Open FileGDB driver, the data is read only. Loaded vector layer in QGIS

  9. For your reference, here is the "About" window from my install of QGIS, showing the versions of the software, and the GDAL/OGR library being used. QGIS About Window

This install was performed on a Windows 7 64bit computer. With previous installers, there were some inconsistent results. This may have changed with the switch to the 32 or 64bit installers. This thread at OSGeo discusses some old issues people were experiencing: Thread

20
  • @mattwilkie - I don't know if this makes a difference, but what is the file version of your FileGDBAPI.dll? Mine is 1.2.0.136. What happens when you try to open a .gdb directory? May 28, 2012 at 19:18
  • My file version is same, last modified 23-Feb-2012 2:20pm, 4,616,048 bytes.I'm told "test.gdb is not a valid data source" (using directory type). I see from here that others have had trouble reliably getting the ability to open file-gdb's in qgis installed by osgeo4w. I also tried copying FileGDBAPI.dll to the qgis bin directory and ogr_FileGDB.dll to the qgis gdalplugins directory as per here. May 28, 2012 at 19:31
  • Just to be clear, I am using the OSGeo4W installation. I wanted to verify where both of those files were located. The FileGDBAPI.dll file is located at C:\OSGeo4W\bin. The ogr_FileGDB.dll is located at C:\OSGeo4W\bin\gdalplugins\1.9. I am actually going to do an uninstall of my OSGeo4W and do an install of standalone QGIS to see if I can get it to work with that. I'll post my results. May 28, 2012 at 19:47
  • 1
    Can QGIS handle ESRI FGDB files that contain rasters instead of shapefiles? I have downloaded a FGDB file that I have opened in ArcGIS, which shows up like a raster but in QGIS 3.0 (drap-drop) it opens as a vector (with only one single non-classified polygon). Source: donneesquebec.ca/recherche/fr/dataset/utilisation-du-territoire/… Nov 27, 2018 at 15:10
  • 1
    @user3386170 Unfortunately, the FGDB API does not support raster. I provided a link in point 7 of the workflow above. Nov 30, 2018 at 0:42
54

If you have QGIS running and compiled against GDAL 1.11.0, it now has native FileGDB support via the OpenFileGDB driver.

To open a geodatabase in QGIS, be sure to choose "Add vector layer", "Source Type = Directory" and source should be either "OpenFileGDB" or "ESRI FileGDB". Then just browse to the *.gdb folder of choice, press "Open" and the layers will be loaded into your Table of Contents.

There are some current limitations like not being able to write to a FileGDB, but it supports FileGDBs <= 10.0 which is quite a bonus and "custom projections".

The work-in-progress reverse-engineered specification is available on GitHub for the OpenFileGDB driver.

1
  • First link is broken.
    – zabop
    Mar 1, 2022 at 8:36
17

If you are on a Mac you can compile the filegdb driver from scratch using these instructions.

UPDATE: It has been 2 years since this answer, you may want to try this now: https://github.com/OSGeo/homebrew-osgeo4mac Also, as many say now, you can use the OpenFileGDB driver which does not use the ESRI binaries to accomplish this. Please be mindful that it is a project that has reversed-engineered how the spec works and not ESRI sanctioned (still is great to have alternatives and it represents amazing work).

0
7
  • Download and run OSGEO4W setup (I'd suggest the 32 bit version)

  • Run it once using the Desktop Installation option, to install QGIS (and whatever other desktop programs you want).

  • After that's all done, run OSGEO4W setup again from the Start menu, choose Advanced installation, and proceed to the part of setup where you select packages. Scroll down to the "gdal-filegdb" package and click where it says "Keep" in this screenshot:

enter image description here

It says "Keep" there because I already have the package installed, you will want to click it until the text there matches the "Current" number to the left of it.

  • Click Next, you'll need to agree to some license terms, then finish the installation and you're done.
0
6

i had a related problem/question some 3 months ago (see: qgis 2.8.1 arcgis filegdb incomplete list in win-version)

a few days ago i've switched from 2.8.x to 2.10.1-Pisa hoping to get rid of the file geodatabase issues discribed in my question. unfortunately without beeing successfully.

what i've figured out since then is: there still seems to be a problem with custom coordinate systems ! my tests with a filegdb created with arcgis 10.1 and another one with arcgis 10.3 on different pcs show that trying to open a filegdb that just contains feature classes with custom CRS returns the following error:
"Invalid Data Source: D:\xxxx\yyy\zzzz.gdb is not a valid or recognized data source"

... both drivers (FileGDB driver, OpenFileGDB driver) return the same error !
while Can FileGDB SDK be made to support custom coordinate systems? article and some of the comments/answers here state that custom CRC support via OpenFileGDB is implemented - it doesn't work on my systems (gdal-filegdb: OGR FileGDB Driver 1.11.2-1)

if the filegdb contains any tables - just these tables are displayed in "select vector layers to add ..." list and mixing custom CRC- and non-custom data with looks like this

arccatalog:

filegdb content arccatalog

qgis 2.10:

filegdb content qgis (FileGDB driver and OpenFileGDB driver)

my personal conclusion: always use standard CRCs ! ! !

6

It is nice, in 2019, you do not need do above, it is already supported in qgis 3.6.

Simple and easy by 3 steps:

Step 1: click the add vector button (red circle)

enter image description here


Step 2: select directory, openFileGDB, and file path (red arrow)

enter image description here


Step 3: select all layers (red circle) enter image description here


Done!!!!! You just add all layers to qgis

3

For macOS Mojave (10.14) users with QGIS 3.X, install the fileGDB GDAL driver using Homebrew from osgeo4mac, then appropriately link the path to point to the gdalplugins directory used by QGIS:

  1. brew tap osgeo/osgeo4mac
  2. brew install osgeo-gdal-filegdb
  3. Note the plugin directory displayed by Homebrew: console output of successful osgeo-gdal-filegdb install

  4. Verify a successful install by running ogrinfo --formats and verify that FileGDB is listed: console output showing FileGDB format supported

  5. Link the compiled driver file into the appropriate gdalplugins directory.

The preferred way to do this is to create a symlink (ln -s source_file dest_file) from the compiled ogr_FileGDB.dylib to within the QGIS Application Package.

In my case: ln -s /usr/local/Cellar/osgeo-gdal-filegdb/2.4.1_1/lib/gdalplugins/2.4/ogr_FileGDB.dylib /Applications/QGIS3.4.app/Contents/Resources/gdal/gdalplugins/2.4

Alternatively, in QGIS 3.X, go to Preferences --> System --> Environment and create a custom variable called GDAL_DRIVER_PATH set to the directory provided by Homebrew (in my case, /usr/local/lib/gdalplugins). Beware that this approach will break any other GDAL plugins within the QGIS Application Package. After restarting, you should see this variable show up in bold in the "Current environment variables" section: QGIS screenshot showing GDAL_DRIVER_PATH environmental variable

You should now see ESRI FileGDB in your list of Vector Directory data source types, and also be able to Export layers as FileGBD types: enter image description here

Not the answer you're looking for? Browse other questions tagged or ask your own question.