Идва ли краят на шейпфайла (shapefile)?

ESRI Shapefile е векторен формат за запазване на геопространствена информация. Той е създаден от (може би) най-голямата световна компания за ГИС софтуер, която го поддържа и притежава лиценза за него. Шейпфайлът се използва главно като средство за размяна на пространствени данни между софтуера на ЕСРИ (ArcGIS Desctop) и останалите ГИС софтуери. Появява се в началото на 90-те на миналия век и все още е широко разпространен сред професионалистите, които боравят с геопространствени данни. За незапознатите, шейпфайлът може да „описва“ векторни характеристики: точки, линии и полигони, които представляват например, шахти, тръбопровод и езеро. Файлът е придружен с така наречената атрибутивна таблица, в която са описани желаните характеристики. Това могат да са номера на шахти, дължина на тръбопровод, температура на водата и т.н. Повече за техническите параметри на файла може да прочетете в Уикипедия (на англ. ез.).

Форматът безспорно има много предимства и не случайно се е наложил като основен при боравенето с пространствени данни и използването на ГИС. Нещо като популярния формат pdf (Portable Document Format), който е създаден от Adobe през 1993 г. и се използва от всички и до днес.

Въпреки това, шейпфайлът очевидно има и недостатъци, или по-скоро ограничения, част от които съм се натъквал и при работата ми с него. Поради тази причина членове на геопространствената ИТ индустрия излизат с малко крайния призив, че „шейпфайлът трябва да умре“ и постепенно да спре да се използва като основен формат за трансфер на данни и да бъде заместен с такъв, който се възползва от напредъка на технологиите от 1990 г. до наши дни.

Какви са добрите и лошите характеристики на шейпфайла?

Положителни страни

  • Шейпфайлът безспорно е най-широко поддържаният формат в съществуващите софтуерни продукти.
  • Докато самият формат (shapefile) е лицензиран и се притежава от ЕСРИ, самата му спецификация е отворена, което позволява работата с него.
  • Индекс файлове (например *.shx), които се използват, позволяват много добро представяне при „четене“ на информацията от самия носител.
  • Според голяма част от професионалистите той е относително ефективен по отношение на големината на файла в сравнение с други формати.

Отрицателни страни

Според членовете на геопространствената ИТ индустрия, шейпфайлът притежава и редица отрицателни черти. Поради това трябва да бъде избегнато неговото използване със следните аргументи (които се увеличават с времето):

  • В shapefile не се съдържа дефиниция за координатна система по подразбиране. Това, разбира се, се коригира с използването на, например*.prj, файл, който съдържа тази информация. Но това може да създаде допълнителни проблеми.
  • Въпреки че сме свикнали да възприемаме шейпфайла като 1 файл, всъщност той е мултифайлов формат. Задължителните файлове в него са три (*.shp; *.shx; *.dbf), но могат да достигнат и до повече от 10 (!). Това особено затруднява изпращането на файловете на друг човек. Трябва да се архивират всички файлове, което увеличава риска от грешки и да изпратим непълен файл, негоден за работа. Да не говорим за бъркотията в папката, в която съхраняваме шейпфайловете си – за 10 бр. в нея ще имаме минимум 30 файла!
  • Имената на атрибутите са ограничени до 10 знака. Това често ни кара да бъдем доста креативни в даването на имена на полетата в атрибутивните си таблици.
  • Към горното можем да добавим и ограничението от 255 атрибутивни полета, които можем да съхраняваме. Да, трудно можем да си представим един шейпфайл с 255 атрибута, но не е невъзможно.
  • Ограничени типове данни, които могат да се съхраняват. В шейпфайл могат да се съхраняват данни само тип float, integer, date и текст с максимум 254 символа. Не се поддържат по-напредналите типове данни като blobs, images или arrays.
  • Невъзможност да се определи набора от символи, използван в базата данни. Сблъсквали сте се с „маймунките“ вместо кирилица, нали? Ето това е причината. Много програми все още използват стария Windows или ISO формат за кодиране, докато днешно време тенденцията е вече използването на UTF-8 и нагоре. Поддръжката на Unicode символи също е доста ограничена, което често се проявява в частична и пълна загуба на данни от атрибутивната таблица при някои операции.
  • Максималната големина на един шейпфайл е 2GB. Тук се включват всички файлове, от които е съставен. Въпреки че има решения, които могат да „заобиколят“ ограничението, поради технологията стояща зад shapefile той не може да надхвърли 4GB. Но тогава може да има несъвместимост с други софтуери. Да, 4GB могат да звучат повече от достатъчно, но не във всички случаи. Особено с нарастване събирането на най-различни геопространствени данни.
  • Няма възможност за съхраняване на топология.
  • Няма възможност за съхраняване на повече от един формат в отделен файл, т.е. един файл може да съхранява само един от поддържаните формати (точка, линия, полигон и други).
  • „Плоско“ структуриране на данните. Няма възможност за обособяването на йерархия, връзки или пък „дървовидна“ структура.
  • Ограничено 3D поддържане.
  • Линейна или „полигонна“ (тази дума не знам дали съществува в бълг. ез.?!) геометрия, single или multipart, не могат да бъдат надеждно определени на ниво слой, а се определят индивидуално. Това може да доведе до грешки при автоматична обработка на данните, защото не може на 100% при изходните данни да се разчита геометричния им тип, дали е single или multiple.

Какви са алтернативите?

Към момента съществуват повече от 80 векторни формати, но много малка част от тях могат да бъдат кандидати за заместници на шейпфайла. По-популярни от тях са KML, GML, GeoJSON, но често те се използват само за специфични задачи и случаи.

Към тях могат да се присъединят и OGC GeoPackage, SpatiaLite и CSV. Повече за тях може да прочетете на специално създадената страница за смяната на шейпфайла: switchfromshapefile.org.

Едва ли в близкото бъдеще шейпфайла ще отпадне от употреба. По-скоро искам да видя неговото развитие на следващо ниво, както 2013 г. от Майкрософт обновиха офис-пакета си и файловите формати, които поддържаха вече много повече функции.

Вашият коментар