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.