Почему нам следует отказаться от шейп-файлов (.shp)?
ESRI Shapefile (шейп-файл) — это формат файла для хранения геопространственных векторных данных. С начала 1990-х годов его чаще других используют для обмена векторными данными. Несмотря на популярность, этот формат имеет ряд ограничений, которые усложняют работу и снижают производительность. Поэтому представители геопространственной IT-индустрии призывают отказаться от использования этого формата в пользу других форматов, например GeoPackage.
Причины, по которым шейп-файл всё ещё популярен. 1.Шейп-файл поддерживают многие пакеты программного обеспечения. 2. Формат проприетарный, но его спецификация открыта. 3. Шейп-файлы имеют хорошую производительность чтения и относительно эффективны с точки зрения размера файла.
Недостатки шейп-файлов:
1. Многофайловый формат. Шейп-файл использует как минимум 3 файла (*.shp, *.dbf, *.shx). Пользователи не могут поделиться только одним файлом, поэтому они отправляют файлы архивом. В свою очередь, получатели снова распаковывают этот архив. Этот процесс приводит ко временным затратам и ошибкам. Кроме того, другие пакеты геопространственного ПО добавляют собственные расширения, чтобы преодолеть ограничения шейп-файлов. Эти расширения могут не поддерживаться другими инструментами, что ограничивает совместимость.
2. Короткие имена атрибутов. Длинные имена автоматически сокращаются до 10 символов. Это приводит к сокращенным именам атрибутов, которые непонятны получателю данных.
3. 255 атрибутивных полей. В файле базы данных может быть только 255 атрибутивных полей, что для некоторых случаев - ограничение.
4. Поддержка типов данных атрибутов. Поддерживаются типы данных float, integer, date и string. Числа с плавающей запятой можно хранить в виде текста, но большие целые числа не поддерживаются. Формат непригоден для использования, когда у вас есть данные с большими целочисленными идентификаторами, например кадастровые номера, а текст ограничен всего 254 символами. Сложные поля данных, такие как большие двоичные объекты, изображения или массивы не поддерживаются.
5. Неизвестный набор символов. Невозможно указать кодировку для базы данных. Некоторые приложения используют старые кодировки данных Windows-* или ISO-*, тогда как большинство пользователей используют UTF-8. Поддержка символов Unicode также ограничена.
6. Ограничение размера 2 ГБ. Размер файлов компонентов .shp и .dbf не может превышать 2 ГБ. Драйвер GDAL Shapefile преодолевает это ограничение, но для совместимости с другими ПО не рекомендуется использовать размер файла более 2 ГБ для файлов .SHP и .DBF. Таким образом, 4 ГБ — это максимальный размер шейп-файла.
7. Нетопологический формат. Невозможно сохранить топологию геометрии.
8. Нет сложной геометрии. Допустим, вы хотите сохранить в один файл точки, линии и полигоны. В шейп-файле это невозможно реализовать – для каждого типа геометрии отдельный файл.
9. Плоская структура данных. Структура данных ограничена плоскими таблицами без иерархий, отношений или древовидной структуры.
10. Ограниченная поддержка 3D. Шейп-файл не хранит описания материалов и текстуры. 3D-модели хранятся в виде набора из треугольников или полигонов, без поддержки замкнутых объектов или параметрических геометрий.
11. Несоответствия определения проекции. В формате нет определения системы координат. Ввести систему координат можно с помощью расширения *.prj, у которого есть ряд ограничений. Оно использует определения Esri WKT, которые часто несовместимы со стандартными определениями EPSG или других источников. Кроме того, они часто пропускают параметры, необходимые для перепроецирования.
12. Нет значения NULL. Пользователь не отличит нулевое значение и отсутствие данных для числовых полей.