Сценарий Python был написан около 18 месяцев назад человеком, который сейчас ушел. Это произвело требуемые результаты тогда. Меня попросили запустить его снова, но с разными (более точным разрешением) данными. Входной набор данных был разбит на 20 подмножеств примерно по 2700 точек данных в каждом. Тем не менее сценарий аварийно завершает работу («python.exe перестал работать») после обработки примерно 300 точек данных (в диапазоне от 295 до 306, и НЕ всегда происходит сбой на одной и той же записи).
Как и его старый (ish), скрипт был написан с использованием arcgisscripting, а не arcpy. В широком смысле это делает следующее с помощью курсоров:
- Для данной точки вычислите расстояние затрат (используя gp.CostDistance_sa) с отсечением 60 минут времени в пути.
- Вызывает gp.ExtractValuesToPoints_sa, чтобы извлечь все отдельные значения в каждой точке данных и вывести класс пространственных объектов в файловую базу геоданных.
- Считывает класс пространственных объектов, созданный в пункте b) выше, и записывает значения в файл CSV (без точек «Нет данных» (значение -9999)).
Повторяет 1, 2 и 3 для всех оставшихся точек данных во входном файле.
Время обработки составляет ок. 1 минута на точку данных в среднем. Вот некоторые соответствующие технические характеристики:
- На ПК установлен четырехъядерный процессор Intel i7-2720QM с тактовой частотой 2,20 ГГц и 8 ГБ ОЗУ под управлением Windows 7 (64-разрядная версия).
- Версия Python - 2.6.6 (оболочка также сообщает «[MSC v, 1500 32 бит (Intel)] на win32).
- ArcMap 10.0 (SP4) также установлен.
Я попытался запустить его на другом ПК (пока без сбоев). В настоящее время задание успешно выполняется (но медленнее) на старом ПК и достигло 419 записей без сбоев. Соответствующие спецификации для этой машины:
- Процессор Intel Core 2 DUO E7500 с тактовой частотой 2,93 ГГц, 4 ГБ оперативной памяти и 64-разрядной ОС Windows 7.
- Python версии 2.5.1 (оболочка также сообщает «[MSC v, 1310 32 бит (Intel)] на win32).
- ArcMap 9.3 установлен (без упоминания каких-либо пакетов обновления).
Может кто-нибудь предложить какой-нибудь совет о том, почему сценарий работает некоторое время, затем происходит сбой и как его решить?
Тот факт, что для обработки сценария появляется другой компьютер (пока что), предполагает нечто «экологическое».
В качестве обновления ПК с ARCGIS 9.3 все еще успешно обрабатывает данные и достиг 1300 обработанных точек данных (и продолжает подсчитывать). Коллега также запустила данные на своем компьютере, работающем под управлением ARCGIS 10.1 - в двух отдельных случаях произошел сбой после 267 записей. Хотя это и не является окончательным, общая нить выглядит так: Arc 9.3 будет обрабатывать данные, а Arc 10.x - нет.