Раз никто не ответил, значит либо плохо объяснил, либо не знают в чем проблема.
Объясню по другому!
Раньше скрипт пересечения был отдельным скриптом в панели ArcToolBox
("Пересечение_слоев")
Его код был такой
class intersect:
def __init__(self):
print("IT's RUN...")
try:
self.gp = arcgisscripting.create()
self.gp.addmessage("It's run")
except:
print("Push ME - create")
raw_input()
# Load required toolboxes...
self.gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Analysis Tools.tbx")
self.gp.addmessage("Analysis tool add")
# Local variables...
Air_sel = "D:\\Gis\\WaterAirGB\\WAGB.mdb\\Air_sel"
Finzal_Big_razrez = "Finzal_Big_razrez"
Air = "Air"
# Process: Пересечение (Intersect)...
try:
self.gp.Intersect_analysis("Finzal_Big_razrez #;Air #", Air_sel, "ALL", "", "POINT")
self.gp.addmessage("Intersect done")
except:
print("Push ME")
raw_input()
И он работал без проблем.
НО!!! после того как я стал его запускать из под графического интерфейса
("Запуск комплексного анализа"), он перестал находить пересечение 2 слоев.=(
Хотя программа не вылетает..там стоит try/except
Вот так я загружаю интерфейс
class App():
def __init__(self):
# Загружаем файл интерфейса
self.gladefile = "Compl_.glade"
# дерево элементов интерфейса
self.widgetsTree = gtk.glade.XML(self.gladefile)
# Соединяем событие закрытия окна с функцией завершения приложения
self.window = self.widgetsTree.get_widget("window1")
А этой командой я передаю управлению созданному интерфейсу.
if __name__ == "__main__":
#p1 = T(gtk.main())
app = App()
#p1.start()
gtk.main()
Я не могу понять в чем разница.
В первом как мне кажется я запускаю непосредственно из ArcMap, и как мне кажется связь с геопроцессором прямая!
В другом случае тоже запускаю из ArcMap, но фокус в дальнейшем делается на созданный интерфейс. Может в этом проблема? Или в чем то еще?
Подскажите, кто знает как происходит связь Питона с конкретными выделенными объектами в среде ArcMAP. Могу я ее как то нарушить.
Спасибо