Найти - Пользователи
Полная версия: выдаёт ошибку
Начало » Центр помощи » выдаёт ошибку
1
Yana21
import arcpy #Подключение модуля инструментов геообработки
import sys #Подключение модуля стандартной библиотеки Python
from math import * #Подключение модуля математических функций

#Задается функция, которая считает вероятность
def probability_function(a, K, M):
return (((M*a)**K)*exp(-M*K))/K

#Входные параметры
table = sys.argv #Длины участков железной дороги L
K = float(sys.argv) #Число пожаров K
M = float(sys.argv) #Среднее число пожаров M

in_field = u'Dlina;Srednee_chislo_PZ' #Название входных полей
out_field = u'Probability' #Название выходного поля

#Создаем курсор, считывающий пары из значений входных полей, кото-рый поместит #их в список in_field_values
rows = arcpy.SearchCursor(table, ‘', ’', in_field)
in_field_values =
for row in rows:
tmp =
in_field_values.append(tmp)
del row
del rows

#Создаем курсор, обновляющий значения выходного поля, в цикле пере-бираем все #строки таблицы, считая и записывая значения; теперь значения а и М берем из #соответствующих пар значений
rows = arcpy.UpdateCursor(table, ‘', ’', out_field)
i = 0
for row in rows:
a = in_field_values
M = in_field_values
row.setValue(out_field, probability_function(a, K, M))
rows.updateRow(row)
i += 1
del row
del rows
Выдаёт ошибку UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 1-6: ordinal not in range(128)
Что не так, подскажите
doza_and
В начале файла *.py не указана его кодировка. Попробуйте удалить все русские комментарии
Yana21
doza_and
В начале файла *.py не указана его кодировка. Попробуйте удалить все русские комментарии
как указать его кодировку?
Yana21
Теперь вот что пишет
PEHDOM
Ну дык вы не передали параметр при вызове скрипта. Скорее всего вы просто нажали в PyScripter кнопку пуск, а у вас скрипт берет данные из параметров коммандной строки
 .....
table = sys.argv[1] #Длины участков железной дороги L
K = float(sys.argv[2]) #Число пожаров K
M = float(sys.argv[3]) #Среднее число пожаров M
.....
тоесть его нужно запускать из коммандной строки примерно так: python.exe mod1.py “путь_к_таблице_с_длиннами_участков” 4 5
где 4 у-во пожаров, 5 среднее число пожаров(вписать свое)
ну или в самом PyScripter -е в меню пуск есть “парметры коммандной строки” нужно поставить галку “использовать параметры коммандной строки” и прописать параметры.
Yana21
PEHDOM
Ну дык вы не передали параметр при вызове скрипта. Скорее всего вы просто нажали в PyScripter кнопку пуск, а у вас скрипт берет данные из параметров коммандной строки
Вообще мне нужно это проделать в питоне в arcgis, там по идеи должно появиться окно, куда я должна вписать данные(путь к таблице, число пожаров)..но там мне пишет вот что
PEHDOM
Yana21
Вообще мне нужно это проделать в питоне в arcgis, там по идеи должно появиться окно, куда я должна вписать данные(путь к таблице, число пожаров)..но там мне пишет вот что
Не знаю как там в архгисе, окуда оно окно должно брать, но ваш скрипт кушает эти данные из параметров коммандной строки.
sys.argv это список где каждый элемент это параметр коммандной строки.
sys.argv(0) - это собственно имя самого скрипта, остальные по факту того что вы туда передали. Когда вы обращаетесь к sys.argv(1) вы получаете indexError потому как вы (или архгис) не передали никаких других параметров в коммандной строке и вас в sys.argv толко один элемент.
Возможно вы должны вызывать этот скрипт из другого где оно спрашивает путь к таблице и число пожаров, и передать ему веденные данные?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB