Esri File Based Geodatabases en Oracle connecties openen met QGIS

GDAL en OGR (www.gdal.org) van Frank van Warmerdam zijn de bekende software bibliotheek die zorgen voor het openen en schrijven van vele gis-formaten. Het mooie van QGIS is dat deze ook gebruikt maakt van OGR. Dus bij elke toevoeging of verbetering van de OGR bibliotheek wordt ook QGIS een beetje beter.
Hoewel je het natuurlijk zelf nooit zal willen gebruiken, krijg je soms een FGDB (File Geodatabase) van Esri toegestuurd. Sinds versie 1.9 kan OGR ook omgaan met dit formaat. Let wel op: “File GDB must be ArcGIS version 10, 9.3.1 is not supported.”
Sinds die versie is het voor QGIS dus ook mogelijk om FGDB files te openen, mits die QGIS gebruik maakt van OGR 1.9 of hoger. Gelukkig is dat voor bijvoorbeeld Windows gebruikers geen probleem als je gebruik maakt van een OSGEO4W installatie van QGIS (zie dit artikel). Als je daarin ‘gdal filegdb’ hebt aangevinkt kan QGIS dus fgdb’s openen. Voor Linux gebruikers is het op dit mogelijk door bijvoorbeeld gebruik te maken van packages uit repositories als ‘ubuntugis’ of ‘elgis’ zie download.qgis.org.
Om dit te proberen moesten we natuulijk eerst een fgdb bestand achterhalen (en in een hardcore OpenSource bedrijf als WebMapper is dat natuurlijk niet zo triviaal). Maar al googlend kom je (natuurlijk) terecht bij Esri Waar je na registratie (!) een voorbeeld fgdb kunt downloaden van Noord-Amerika.
Na uitpakken bevindt zich in het mapje ‘FileGDB API/samples/data’ enkele mapjes eindigend met de naam .gdb
Zo’n mapje is wat Esri een FileGDB noemt. Het heeft niet zoveel zin om hier in te kijken. Het staat vol met cryptische namen als a00000015.gdbtablx a00000015.spx etc etc.
Gelukkig kan QGIS hier wel iets mee. Ga via het menu of knoppen naar ‘Vectorlaag Toevoegen’, en selecteer daar ‘Map’ of ‘Dir. Kies als Bron/Source-type ‘ESRI FileGDB’. Als dit zich NIET tussen de mogelijkheden bevindt, werk je blijkbaar met een OGR/GDAL versie die dit (nog) niet ondersteund (zie verder onderaan) Browse naar de map data van daarnet.

Selecteer ‘topo.gdb’

Na selecteren van deze map blijkt deze verschillende datalagen te bevatten: states, us_lakes, us_rivers enz. We selecteren er meteen enkele:
Bingo. We zien de vectorlagen en kunnen ze als normale datalagen stijlen en bewerken.

QGIS kan ook data openen en visualiseren uit een Oracle Database.
Er geldt hier hetzelfde als voor fgdb: mits de geinstalleerde OGR het ondersteund is het een kwestie van een connectie aanmaken:



Hoe kun je achterhalen welke ogr bibliotheek jij gebruikt ?
Via het Help/About menu staat er in het About-tabje precies welke bibliotheken EN de versies QGIS allemaal gebruikt:

Hoe kun je achterhalen welke formaten ogr/gdal allemaal ondersteunt?
Om te zien welke formaten uw OGR of GDAL ondersteund gebruik het volgende commando:

c:\osgeo4w>ogrinfo --formats

en

c:\osgeo4w>gdalinfo --formats

Dit geeft voor beide een lange lijst van formaten die worden ondersteund. Om te bekijken of fgdb (gdb) en Oracle (oci) ondersteuning is zoek naar die strings in de output:

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

Hoe kom je aan een ogr/gdal die WEL fgdb en/of oracle ondersteund?
Zoals gezegd, voor Windows gebruikers is de QGIS installatie met OSGeo4w een eenvoudige manier (de standalone/msi installer heeft die mogelijkheden niet).
Voor Linux gebruikers is het zelf compileren van GDAL de (enige?) oplossing. De reden hiervoor is dat bedrijven als Oracle, Esri en Erdas geen toestemming geven om de binaire bibliotheken mee te laten ‘packagen’ door de Open Source gemeenschap. Je zult dus altijd de hobbel moeten nemen om de SDK’s te downloaden en met behulp daarvan GDAL zelf te compileren.

Join the Conversation

14 Comments

  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.

    1. odd. Are you using the osgeo4w install, AND did you check to install ‘gdal filegdb’ also?
      That should do it…

  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.?

    1. Overigens geeft ‘ogrinfo –format’ wel gewoon ‘-> “FileGDB” (read/write)’.

  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. Hoi Leo,
    Ik heb precies dezelfde fout als jou.
    Heb jij al uit kunnen vinden waar het probleem ligt?
    Groeten,
    Tony

  6. 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.

  7. 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 comment

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