Разделить или сохранить подмножество файла SHP ESRI Shape в новый файл? - PullRequest
8 голосов
/ 10 июня 2010

Я работаю с файлами форм в GeoDjango. Сейчас я пытаюсь написать тест для кода, который загружается в файл формы и сохраняет его в базе данных. Файл формы в настоящее время имеет число объектов 64 118. Я хотел бы сократить это до небольшого количества, чтобы тест мог быстро загрузить его и подтвердить, что все правильно.

Так как файлы форм не в текстовом формате, есть ли бесплатное приложение или библиотека, которую я могу использовать, чтобы выделить несколько функций и сохранить их в новом файле?

Я должен отметить, что у меня нет ни лицензии, ни доступа к какой-либо линейке продуктов ESRI.

1 Ответ

12 голосов
/ 11 июня 2010

У вас есть несколько вариантов экспорта подмножества записей из шейп-файла.

  • Любая ГИС с открытым исходным кодом сможет выполнить это. Некоторые из наиболее популярных: Quantum GIS , gvSIG или openJUMP . Точные шаги будут отличаться в каждом из них, но в основном вам нужно загрузить файл формы, начать редактирование, выбрать нужные записи и экспортировать их в новый файл формы.

  • Инструмент ogr2ogr , входящий в состав пакета GDAL, позволяет выполнять преобразование между различными географическими векторными форматами (или в одном и том же формате), а также можно указать выражение, подобное SQL, для фильтрации Исходный набор данных.

    ogr2ogr -f "ESRI Shapefile" - где "id <10" new_shapefile.shp огромный_shapefile.shp </p>

  • Если вы используете PostGIS и не хотите устанавливать какое-либо из предыдущих приложений, вы можете использовать инструмент pgsql2shp для экспорта подмножества вашей таблицы PostGIS в шейп-файл.

    pgsql2shp -f "/ path / to / shapefile" -h сервер -u пользователь -P пароль postgisdb «ВЫБРАТЬ * ИЗ таблицы ГДЕ id <10» </p>

Редактировать : В любом из трех вариантов вы можете выполнить пространственный фильтр (т. Е. Объекты, попадающие в ограничивающую рамку), а не выборку на основе атрибутов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...