maandag 11 maart 2013

Shapefiles zijn geen standaard

Shapefiles, dat zijn toch dé standaard GIS bestanden? Ieder weldenkend GIS-pakket leest en schrijft ze, en veel geo-professionals weten al amper meer dat het shape-formaat van origine uit de ontwikkelaarskelders van Esri afkomstig is.

Zodra je écht professioneel aan de gang gaat, met een dataset van serieuze omvang, is een geografische index onontbeerlijk. We zijn van de geo, maar nog te vaak doen we onze dierbare geometrieën te weinig eer door ze geen "spatial index" gunnen. Met veel koffiepauze tot gevolg, zelfs bij simpele teken- en identify-acties. Bij data die over het netwerk benaderd werd zag ik zelfs een snelheidswinst van een factor 15!

Wel is er wat vreemds aan de hand als je niet 100% Esri bent. Onze softwarebouwer uit Redlands is in de beroemde white paper uit 1998 waarin het shapefile formaat wordt beschreven "vergeten" de geografische index te beschrijven. Zodoende blijft die .sbn file ("oh, is die daarvoor!") een van de best bewaarde geheimen van de geowereld.
Zelfs Safe, de makers van FME, kennen dit geheim niet. Als gevolg daarvan moet jouw en mijn FME voor het aanmaken van een index uitwijken naar ArcGIS, indien op de PC aanwezig. Als ArcGIS niet op je PC staat, of er geen ArcGIS license vrij is, of ArcGIS als gevolg van applicatie-virtualisatie niet zichtbaar is voor FME kun je fluiten naar je spatial index. En daarmee naar een fatsoenlijke performance. Melk en suiker graag. En doe maar extra sterk.

In Open Source geo-land is dit tot op heden opgelost door dan zelf maar een geografische index op shapefiles te ontwikkelen. In de bekende OGR library en utilities wordt dezelfde .qix index gebruikt die al lang geleden voor Mapserver is ontwikkeld.
Ik typ "tot op heden", want door enthousiast reverse engineeren is het geheim van de "echte" shapefile index ontrafeld en wordt deze met ingang van versie 1.10 van de OGR programmerbibliotheek ondersteund. Da's goed nieuws, want die OGR library wordt in heel veel programma's gebruikt, onder meer in QGis, de Open Source tegenhanger van ArcMap. Vooralsnog overigens alleen bij leesacties, maar ik verwacht in de nabije toekomst ook het aanmaken/bijwerken van indexen in OGR.
Daarvoor zou het helpen als Esri de beschrijving van de indexen in een update van de genoemde whitepaper op zou nemen. Dat zou 15 jaar na het verschijnen van die white paper toch moeten kunnen.

2 opmerkingen:

  1. Vroeger stond er wel eens een bericht in de krant dat er een Japanner uit de tweede wereldoorlog uit de bosjes was gekropen. Dat was mijn eerste associatie toen ik dit stuk las.

    Met de introductie van ArcGIS 9.2 in 2006 zag ook de file geodatabase het licht. De file geodatabase is een container voor geodata met een open gepubliceerde (sinds 2011) API (http://resources.arcgis.com/content/geodatabases/10.0/file-gdb-api). Sinds 2011 zijn er ook GDAL drivers voor beschikbaar.

    Kortom, ik vind dit erg lijken op een oproep aan Ford om eindelijk de versnellingsbak van de T-Ford op te waarderen.

    En zijn er zaken die niet naar je zin zijn in deze API? Of zijn er zaken die je toegevoegd zou willen zien? Niet klagen maar bijdragen! Bijvoorbeeld door onderstaand idea om een Python wrapper toe te voegen op ideas.arcgis.com te promoten.
    http://ideas.arcgis.com/apex/ideaSearchResults?s=python+geodatabase+api&searchButton=search

    BeantwoordenVerwijderen
  2. De keiharde realiteit is dat in geoland er dagelijks nog vele "Japanners" (shapefiles) uit de bosjes tevoorschijn kruipen; het marktaandeel van de file geodatabase is nog gering, naar mijn idee om drie redenen:
    1. tussen de eerste aankondiging van de API en het daadwerkelijk verschijnen zaten bijna vier jaar. Dat was niet goed voor het vertrouwen van ontwikkelaars;
    2. De verschillende versies en vooral de moeizame uitwisselbaarheid van die verschillende versies (ook binnen ArcGIS) maken de file geodatabase lastig als uitwisselingsformaat;
    3. Rond de API is heel lang (tot eind vorig jaar) veel onduidelijkheid geweest over het al dan niet geoorloofd zijn van herdistributie door software-ontwikkelaars.

    En als de file geodatabase tóch de toekomst is, dan is het toch een kleine moeite de technische specificatie van de illustere voorganger alsnog bekend te maken? Kleine moeite, groot plezier. Voor al die duizenden die vooorlopig nog wel in een T-Ford blijven rijden.

    BeantwoordenVerwijderen