Объединение shape-файлов пакетно (подпапки)

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Объединение shape-файлов пакетно (подпапки)

Сообщение Voltron » 02 авг 2011, 11:29

oleg писал(а):Тикет на эту тему для QGIS создал.
Добавлю. #4127
oleg писал(а):Подскажите, пожалуйста, что имеется в виду под ищью-типом "bounty" в трекере? Не "wishes" случайно?
Нет, это не «wishes». Это ошибки, исправление которых финансируется из специального «фонда». Почитать об этом можно здесь

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Объединение shape-файлов пакетно (подпапки)

Сообщение Denis Rykov » 03 авг 2011, 06:18

Код: Выделить всё

import os,fnmatch

def main():
rootPath = 'c:/personal/mcd45/'
isFirst = True
for root, dirs, files in os.walk(rootPath):
shpfiles = fnmatch.filter(files, '*.shp')
if (len(shpfiles) != 0):
for filename in shpfiles:
if (isFirst):
os.system('ogr2ogr merged.shp %s' % (os.path.join(root, filename)))
isFirst = False
else:
os.system('ogr2ogr -update -append merged.shp %s' % (os.path.join(root, filename)))
return 0

if __name__ == '__main__':
main()
Spatial is now, more than ever, just another column- The Geometry Column.

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Объединение shape-файлов пакетно (подпапки)

Сообщение Boris » 04 авг 2011, 07:10

Теперь когда задача решена, я позволю себе вопрос, а при наличии программы, которая объединяет два SHP файла, почему с самого начала не использовались средства командной строки?
Подозреваю, что речь шла о Windows, а в нем(ней-них?) рекурсивный обход дерева каталогов встроен в командную строку.
Последний раз редактировалось Boris 04 авг 2011, 07:12, всего редактировалось 2 раза.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Объединение shape-файлов пакетно (подпапки)

Сообщение Denis Rykov » 04 авг 2011, 09:03

Решение на питоне - кроссплатформенно.
Spatial is now, more than ever, just another column- The Geometry Column.

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Объединение shape-файлов пакетно (подпапки)

Сообщение Boris » 04 авг 2011, 12:45

_DR_ писал(а):Решение на питоне - кроссплатформенно.
Это я не спорю. Но начальный вопрос был с указанием на ArcGIS, там с множественностью плотформ, как-то сильно не очень.
Кроме того, не верю я, что это Winsows такие умные, что команду FOR для своего DOS-интерфейса сами придумали. А если FOR и ogr2ogr есть на разных платформах, то и решение с рекурсивным вызовом - то же кроссплатформенное.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Объединение shape-файлов пакетно (подпапки)

Сообщение Denis Rykov » 04 авг 2011, 12:59

Не совсем понимаю - реализация for есть в командных интерпретаторах различных ОС, но синтаксис его использования - разный, как такое решение можно назвать кросс-платформенным?
Spatial is now, more than ever, just another column- The Geometry Column.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: Объединение shape-файлов пакетно (подпапки)

Сообщение Александр Мурый » 04 авг 2011, 13:09

В GDAL'овском FAQVector есть примеры пакетного объединения шейпов на Windows (с пом. цикла for...do).
P.S. Кроссплатформенность
Согласен с _DR_, скрипты с использованием разные реализаций циклов в командных интерпретаторах (коих десятки) далеко не всегда будут кроссплатформенными, в отличие от скриптов на питоне.
Редактор материалов, модератор форума

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Объединение shape-файлов пакетно (подпапки)

Сообщение Boris » 04 авг 2011, 16:35

я еще раз перечитал вопрос в начале. там был вопрос "как". ответ - "рекурсивное повторение программы ogr2ogr с использованием стандартных средств командной строки" - универсален. задачу решает. применим ко всем ОС, где есть GDAL. О кроссплатформенности не было не слова. Если уж точно говорить, то и python присутствует не на всех машинах, где есть ogr2ogr.
IMHO "универсальность" - она посильнее "кроссплатформенности" будет. Мы ведь в разделе "общие вопросы", а не "я - новичок".

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: Объединение shape-файлов пакетно (подпапки)

Сообщение Александр Мурый » 04 авг 2011, 16:56

Итак, немного продлим удовольствие от спора тему :)
"Универсальность" -- понятие скорее общефилософское, а вот "кроссплатформенность" --- чисто техническое, так? Наверное, они соотносятся по-разному в каждом конкретном случае.
Если уж точно говорить, то и python присутствует не на всех машинах, где есть ogr2ogr.
Ой ли..?
Если сравнить www.python.org/about/ и trac.osgeo.org/gdal/wiki/SupportedCompilers, то видно, что Питон с его небольшими зависимостями собирается под что угодно вплоть до телефонов, а GDAL --- под разновидности Unix, разные версии Windows, MacOS X ... и как бы все.
Редактор материалов, модератор форума

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Объединение shape-файлов пакетно (подпапки)

Сообщение Boris » 04 авг 2011, 17:33

так мы SHP файлы объединяли в дисковой операционной системе (там, помните, речь о папках шла) или о мощь питонов измеряли?
что до универсальности, и кроссплатформенности, то тут все зависит о цели. если при решении задачи, умножили сущности и решили на одну проблему больше - это очень приятно. но к задаче отношения не имеет, только если ее решение не стало от этого сильно проще.
на мой взгляд, и я высказал его только после того, как задача решена, что бы не мешать техническому спору, решение конкретной задачи было избыточным, потому как вместо использования стандартных средств потребовалось программирование.
Что до второй части, то сильно я сомневаюсь, что есть ГИС о которых стоит говорить, или пользователи которых приходят на этот форум, за пределами тех 3-х вселенных, которые вы перечислили в конце.

oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

Re: Объединение shape-файлов пакетно (подпапки)

Сообщение oleg » 11 авг 2011, 09:29

DR, спасибо большое, всё работает!

Со своей стороны (далекой от нюансов разработки) замечу по поводу решения, что при прочих равных, наверно, имеет смысл выбирать наименее зависимое (от иного ПО), то которое сможет использовать большее кол-во людей. При использовании какого-либо одного подхода в будущем, при накоплении готовых решений отдельных задач, возможно, получится их каким-то образом комбинировать в последовательности (a la modelbuilder).

Ответить

Вернуться в «Общие вопросы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя