Зависает Qgis при выполнении цикла

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
klerk184
Участник
Сообщения: 71
Зарегистрирован: 23 июн 2016, 11:56
Репутация: 0

Зависает Qgis при выполнении цикла

Сообщение klerk184 » 14 сен 2016, 13:15

Добрый день всем, помогите пожалуйста разобраться, из-за чего виснет Qgis при попытке выполнить вот этот код:

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

		LSKPR=None
		for lyr in QgsMapLayerRegistry.instance().mapLayers().values():
			if lyr.name() == "LI_DATA_LSKPR":
				LSKPR = lyr
				break		
		outputs_QGISEXTRACTNODES_1=processing.runalg('qgis:extractnodes', LSKPR,None)
		
		
		LSK=None
		for lyr in QgsMapLayerRegistry.instance().mapLayers().values():
			if lyr.name() == "LI_DATA_LSK":
				LSK = lyr
				break
		outputs_QGISEXTRACTNODES_3=processing.runalg('qgis:extractnodes', LSK,None)
		temp_lsk = QgsVectorLayer(outputs_QGISEXTRACTNODES_3['OUTPUT'], "temp_lsk", "ogr")		
		QgsMapLayerRegistry.instance().addMapLayer(temp_lsk)		
		output_file = open('d:/nodes.txt', 'w')		
		list_x = []
		list_y = []
		list_point = []
		for f in temp_lsk.getFeatures():			
			geom = f.geometry()
			x = geom.asPoint().x()
			y = geom.asPoint().y()
			list_x.append(x)
			list_y.append(y)
		Num1 = 0	
		i = 0
		while True:
			X = list_x[i]
			i+=1
			Y = list_y[i]
			Num1 = Num1 + (X * Y)
			if i == len(list_x) - 1:
				break
		Num2 = 0
		i = 0
		while True:
			Y = list_y[i]
			i+=1
			X = list_x[i]
			Num2 = Num2 + (Y * X)
			if i == len(list_y) - 1:
				break
		double_area = (Num1 - Num2) / 2
		if double_area > 0:
			list_x.reverse()
			list_y.reverse()
		i = 0
		while True:
			X = list_x[i]
			Y = list_y[i]
			# Feature = QgsPoint(X,Y)
			list_point.append(y)
			if i == len(list_x) - 1:
				break
		QgsMapLayerRegistry.instance().removeMapLayer(temp_lsk)
Если последний цикл убрать, то все нормально. Т.е. вот этот:

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

while True:
			X = list_x[i]
			Y = list_y[i]
			# Feature = QgsPoint(X,Y)
			list_point.append(y)
			if i == len(list_x) - 1:
				break
Что я делаю не так?
Последний раз редактировалось klerk184 15 сен 2016, 05:32, всего редактировалось 1 раз.

Аватара пользователя
Эдуард Казаков
Гуру
Сообщения: 549
Зарегистрирован: 23 апр 2014, 17:11
Репутация: 535
Откуда: Planet Earth
Контактная информация:

Re: Зависает Qgis при выполнении цикла

Сообщение Эдуард Казаков » 14 сен 2016, 14:37

Бесконечны цикл? Вы счетчик не инкрементируете.

klerk184
Участник
Сообщения: 71
Зарегистрирован: 23 июн 2016, 11:56
Репутация: 0

Re: Зависает Qgis при выполнении цикла

Сообщение klerk184 » 15 сен 2016, 05:32

Эдуард Казаков писал(а):Бесконечны цикл? Вы счетчик не инкрементируете.
Спасибо! И правда, не заметил.

Ответить

Вернуться в «QGIS»

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

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