Esri File Based Geodatabases en Oracle connecties openen met QGIS

GDAL and OGR (www.gdal.org) libs from Frank van Warmerdam are famous software libraries which make it possible in the Open Source world to read and write a plethora of gis file formats. The nice thing about QGIS is that it using OGR and GDAL. So with every addition or enhancement in those libraries, QGIS itself is also getting better.
One example (while we offcourse ourselves will never use it 😉 ), is when somebody sents you a FGDB (File Geodatabase) from Esri. Since version 1.9, OGR can read and write with this format. Remark from the docs: “File GDB must be ArcGIS version 10, 9.3.1 is not supported.”
When using OGR 1.9 in QGIS, it is possible top epen FGDB fieles. Happily it is not difficult for Windows users to use OGR 1.9. If you use an OSGEO4W install of QGIS (see this post). If you checked ‘gdal filegdb’ QGIS should be able to open fgdb’s. For Linux users it is possible to get OGR 1.9 from repositories like ‘ubuntugis’ or ‘elgis’ see download.qgis.org.
To try this out we off course have to get a fgdb file… Googling you find them (off course) available at Esri. After a registration (!) you can download an example fgdb of North America.
Unzipping this you will find a directory ‘FileGDB API/samples/data’ in which you find directories with names ending with .gdb. One of those dirs is what Esri calls a FileGDB. There is not so much to see in those dirs. It is full with files having cryptic names like a00000015.gdbtablx a00000015.spx etc etc.
Happily QGIS kan handle this. Via menu or buttons go to ‘Add Vector Layer’ and select ‘Directory’. As ‘source choose ‘ESRI FileGDB’. If you do not have this as an option, you are apparently working with a OGR/GDAL version lower then 1.9 (see below how to find out) which cannot do fgdb. If you can, browse to the directory you .gdb directory we viewed before.

Select ‘topo.gdb’

After selecting this directory, it appears to hold several data sources: states, us_lakes, us_rivers etc. We select several of them.
Bingo. We see them as normal vector layers, and are able to style and edit them.

QGIS kan also open and visualize data from an Oracle Database.
Here the same adagio: only if your installed OGR library is capable of it: QGIS can do it. But if so: just open a connection to a database vector layer:



How kan you find out which ogr library you have installed and used by QGIS ?
Via the Help/About menu there is the tab ‘About’ which exactly shows you which libraries are used by QGIS, and which version of them:

How to find out which formats are compiled into your ogr/gdal libraries?
You have to go to a command line (via osgeo4w.bat in your osgeo4w directory if you are on windows):

c:\osgeo4w>ogrinfo --formats

en

c:\osgeo4w>gdalinfo --formats

This will give you a long list of formats that can be openedn. To check if fgdb (gdb) and Oracle (oci) are available, search for those strings in the output:

c:\osgeo4w>ogrinfo --formats | grep -i gdb
Supported Formats:
-> "FileGDB" (read/write)
c:\osgeo4w>ogrinfo --formats | grep -i oci
-> "OCI" (read/write)

How to get an org/gdal version which Hoe kom je aan een ogr/gdal die WEL fgdb en/of oracle ondersteund?
As told here above, for Windows users a QGIS install via OSGeo4w QGIS installatie met OSGeo4w is the best way (the standalone/msi installer of QGIS does not have these options).
For Linux user, compiling GDAL yourself is the (only?) solution. Reason for this is dat Oracle, Esri and Erdas do not want the Open Source community to (re)package their binaries. So you have to go all the way, and download the SDK’s and with that compile GDAL yourself.

One thought on “Esri File Based Geodatabases en Oracle connecties openen met QGIS

  1. Hallo Richard,
    Ik heb met jouw artikel erbij het voor elkaar gekregen om de Oracle Spatial mogelijk in het lijstje te krijgen. Nu wil ik een nieuwe connectie maken, maar ik krijg geen verbinding met de database.
    met sql kan ik vanaf mijn pc wel bij de databases. Ik heb een collega van automatisering en wij komen er niet echt uit. Heb je een idee waaraan dit zou kunnen liggen? Ik weet niet zeker of de database wel echt een Oracle Spatial database is, maar er zit wel geometrie in. In Mapinfo werk het in ieder geval wel.
    Alvast bedankt voor de hulp.
    Groeten Jaap Bonnema
    Gemeente Franekeradeel

  2. In help/about it is shown that
    ‘Compiled against GDAL/OGR 1.9.1’
    But in open vector layer/directory it is showing only previous types UK NTF2, U.S. Census Tiger/Line, Arc Info Binary Coverage.
    What is wrong? Using QGIS 1.8 on Windows7 32 bit.

  3. Hoewel ik al jaren Linux als desktop OS draai, compileer ik zelden iets. Het is me met veel hangen en wurgen gelukt (denk ik) om zonder foutmeldingen GDAL 1.9.2 te compileren met FileGDB-ondersteuning.
    Echter, na het ‘sudo make install’-commando, dat ook geen foutmeldingen geeft, krijg ik na het aanvinken van ‘Map’ geen ‘ESRI FileGDB’ in het lijstje te zien.
    Ik heb QGIS 1.8.0 geïnstalleerd via het pakketbeheer (ppa). Moet ook QGIS opnieuw worden gecompileerd of zijn er nog andere zaken waar ik op moet letten? Misschien een commando om de plugins van QGIS te verversen o.i.d.?

  4. Hallo Richard,
    Ik heb gebruikmakend van een OSGEO4W installatie van QGIS de ‘gdal filegdb’ lib aangevinkt en zou dus fgdb’s moeten kunnen openen. Via ESRI heb ik de TOP10NL.gdb info ontvangen. Als ik deze map via “vectorlaag toevoegen” probeer in te lezen krijg ik de foutmelding: “TOP10NL.gdb wordt niet als geldige bronbestand beschouw”. Wat doe ik fout? (QGIS 1.8, Windows 7 64 bit).
    Alvast bedankt voor de reactie!
    groet,
    Leo Leynse

  5. Ik heb QGIS 2.6 draaien en gebruik gdal-filegdb 1.11.1-4 om ESRI filegdb’s te lezen.
    Dit werkt prima behalve het gebruiken van een gecategoriseerde stijl.
    Zodra ik classificeer op een kolom uit de tabel worden er verkeerde waarden ingelezen.
    Iemand een idee hoe dit te corrigeren?
    Erik

    1. Hi Erik,
      zoals jij het nu beschrijft lijkt dit een bugje. Maar kun je het betrouwbaar reproduceren? Ik bedoel, als jij een nieuwe eenvoudige fgdb aanmaakt met enkele polygonen en die laadt en stijlt, treedt het probleem dan ook op?
      Als dat NIET zo is, dan lijkt het een data probleem (strings die integers moeten zijn oid?)
      Als dat WEL zo is, creeer dan een issue report, liefst met de fgdb eraan, dan kan een windows ontwikkelaar het debuggen en verifieren of er iets mis gaat bij het ophalen van de data uit de fgdb oid:
      http://hub.qgis.org/issues/
      Je mag evt de file ook naar mij sturen, dan maak ik een issue aan. Maar zoals gezegd: zorg eerst even dat het reproduceerbaar is.

      1. Ik heb de stappen gevolgd die je aangaf.
        Met een hagelnieuwe fgdb was er inderdaad geen probleem.
        Dus weer gekeken naar de fgdb met het probleem, en daar zie ik niets bijzonders aan.
        Na wat experimenteren kom ik erachter dat als ik de kolom met de naam ID verwijder (na eerst een kopie gemaakt te hebben naar een nieuwe kolom) het probleem verdwijnt.
        Het gaat dan plots wel goed, zelfs als ik de kopiekolom hernoem naar de originele naam ID.
        Ik heb dus een workaround, maar helemaal in de haak is het niet.
        Bedankt voor je advies.
        Erik

        1. Hi Erik,
          dit klinkt nog steeds als een bug of op zijn minst een onduidelijkheid waarvan het mooi zou zijn als die opgelost wordt, zodat anderen hier niet ook tegen aanlopen.
          Dus mijn voorstel zou zijn: help mee QGIS te verbeteren, en maak hier een ‘issue’ voor aan, liefst met twee fgdb bestanden erbij waarmee een ontwikkelaar het probleem kan reproduceren en daarmee verhelpen.
          Laat even weten als je dit lastig vind, dan wil ik die kar wel trekken mits jij voor de fgdb bestandjes zorgt.

          1. Drukke werkzaamheden weerhouden mij er helaas van om op dit moment er tijd aan te besteden.
            Zodra ik lucht heb wil ik je best voorzien van fgdb bestandjes en dan kun jij wat mij betreft die kar trekken.

  6. Ik probeer een fgdb , versie 10, met daarin opgemaakte annotatielagen in te lezen in QGIS 2.6.
    Ik kan de filegeodatabase wel benaderen, en de featureclasses ook inlezen, maar de opmaak is compleet weg. In plaats van opgemaakte tekst, zie je blokjes (opgemaakt als een polygoon).
    Wie weet wat ik kan doen om deze data goed in te lezen?

    1. Hi Leonie,
      kun je mij de file (of een miniiversie van die file) sturen? Dan kan ik het proberen, en evt een bug report (of issue request) van maken: richard apestaartje zuidt.nl

Leave a Reply

Your email address will not be published. Required fields are marked *