Слияние большого количества шейпов

0 голосов
спросил 24 Апр, 08 от Voltron (2,800 баллов) в категории Программные продукты Esri
Возникла необходимость слить достаточно большое количество (точнее 1214 шт.) однотипных шейп-файлов в один. Попробовал воспользоваться примером скрипта из поставки ArcView (Merge Active Themes Click) - после обработки примерно 20 слоев выдается ошибка "Fatal error (VREC). No free channels" и процесс прерывается. В результирующей таблице к этому моменту находится 8183 записи (при общем количестве более 100000).
Чем вызвана эта ошибка (ограничение на количество записей?) и можно ли решить задачу за один проход, не разбивая массив шейпов на более мелкие части?

6 Ответы

0 голосов
ответил 24 Апр, 08 от BPS (2,160 баллов)
Лучше воспользоваться стандартным модулем "мастер пространственных операций", но не следует сливать сразу больше 99 файлов.
0 голосов
ответил 24 Апр, 08 от Voltron (2,800 баллов)
Спасибо, попробую.
...но не следует сливать сразу больше 99 файлов.

Т. е. одним махом все шейпы не обработать... Жаль.
0 голосов
ответил 24 Апр, 08 от geologic (39,860 баллов)
ArcView насчет объемов не самый мощный продукт... Думаю, он пытается открыть файлы одновременно, оттого и ограничение - количество записей может быть и больше, это легко проверить - смержите, например? 2 файла по 20000 записей. Здесь нужна скорее более "тупая" программа, с записью в файл каждой новой порции - еще лучше, с поэтапным резервированием (транзакцией).

В ArcMap можно больше шейпов мержить - штук 150 удавалось программно, больше не пробовали, однако продукт интерфейсный и тоже наверняка будут трудности. Поглядите еще ogr2ogr и другие командные продукты на гис-лаб. Если они и не возьмут вашу 1000 файлов зараз, то сможете по крайней мере сочинить командный поэтапный файл, вас это должно устроить.

Аналогичные пакетные варианты можно было создавать на основе ArcINFOвских инструментов, но они заточены под покрытия были, следовательно, хлопоты с экспортом гарантированы. Сейчас для таких дел Python, наверно, не пробовал. ну и в Toolbox заглянуть, чего там автономного. Append, кажется.
0 голосов
ответил 25 Апр, 08 от Albert1 (10,780 баллов)
блин, тут скрипт элементарный помог бы - получаем массив файлов и по одному их прибавляем, с закрытием каждого пройденного файла - никаких проблем, делали, жаль времени нет.
0 голосов
ответил 25 Апр, 08 от Voltron (2,800 баллов)
На GIS-Lab ничего подходящего для решения своей задачи не нашел (плохо искал?). Погуглив нашел следующее:
GeoMerge с объединением 1000 файлов справилась, причем достаточно быстро. Может, кому-то пригодиться.
Сейчас докачиваю GDAL/OGR, буду разбираться с ними, т.к. необходимо будет проводить такие операции регулярно, да еще и отбирая файлы по некоторым условиям.
блин, тут скрипт элементарный помог бы - получаем массив файлов и по одному их прибавляем, с закрытием каждого пройденного файла - никаких проблем, делали, жаль времени нет.

Буду признателен за пример, а то у меня ничего, способного обработать все файлы за раз, наваять в ArcView не получилось. А впереди маячит еще и слияние шейпов в таблицу другой структуры

0 голосов
ответил 25 Апр, 08 от answer42 (3,240 баллов)
ogr2ogr - очень хорошо работает, конкретная ссылка правда не совсем про это, но код именно тот
http://gis-lab.info/forum/viewtopic.php?t=2141
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...