Thread View: pl.comp.gis
2 messages
2 total messages
Started by Paweł
Mon, 27 Dec 2010 10:11
[Python] problem z odczytaniem wartości zmiennych
Author: Paweł
Date: Mon, 27 Dec 2010 10:11
Date: Mon, 27 Dec 2010 10:11
37 lines
2268 bytes
2268 bytes
Witam
Chciałbym się zapytać czy ktoś wie jak można uzyskać (odczytać) wartość
zmiennych użytych jako parametr dla narzędzia Arcgis ? Poniższy skrypt
wyszukuje w tabelce atrybutów, duplikaty. Zmienne n0 i n1 zwracają po
zakończeniu skryptu wartość 0 zamiast np. 15 w związku z tym ostatnia
instrukcja if nie działa prawidłowo ? Co robię źle lub czego brakuje w tym
kodzie ? Na grupie Pythona nie bardzo potrafiono mi pomóc gdyż sztuczki z
użyciem deklaracji global niestety nie działają ?
n0 = 0
n1 = 0 #liczba znalezionych duplikatów
codeblock = "uniqueList = []\n\
def isDuplicate(inValue):\n\
if inValue in uniqueList:\n\
return 1\n\
n1=n1+1\n\
else:\n\
uniqueList.append(inValue)\n\
return 0\n\
n0=n0+1"
expression1= "isDuplicate(!ID_DZ!)"
gp.CalculateField_management(Output_Dataset, name_dfield, expression1,
"PYTHON", codeblock)
if n1 > 0:
gp.AddMessage ("Znaleziono " +str(n1)+ " duplikat(-ów).")
gp.AddMessage ("Dodano informację o duplikatach(1) lub ich braku(0) w
nowym polu: "+str(name_dfield)+".")
print gp.getmessages(3)
else:
gp.AddMessage ("Brak obiektów o zduplikowanych atrybutach we wskazanej
warstwie."+" n1="+str(n1)+", n0="+str(n0))
print gp.getmessages(4)
Re: [Python] problem z odczytaniem warto ci zmiennych
Author: Mateusz Loskot
Date: Thu, 06 Jan 2011 18:41
Date: Thu, 06 Jan 2011 18:41
28 lines
1785 bytes
1785 bytes
"Pawe" <gamacdur@op.pl> wrote in message news:4d18675a$0$2499$65785112@news.neostrada.pl... > n0 = 0 > n1 = 0 #liczba znalezionych duplikat�w > > codeblock = "uniqueList = []\n\ > def isDuplicate(inValue):\n\ > if inValue in uniqueList:\n\ > return 1\n\ > n1=n1+1\n\ > else:\n\ > uniqueList.append(inValue)\n\ > return 0\n\ > n0=n0+1" Podejrzane jest to, że funkcja isDuplicate kończy wykonanie (return 1 lub return 0) przed jakąkolwiek inkrementacją liczników n1 lub n0. Inaczej, n1 i n0 są zawsze równe Zero. Nigdy nie używałem skryptów w Pythonie wraz z ArcGIS, więc być może problem jest specyficzny dla tego środowiska. Pozdrawiam -- Mateusz Loskot, http://mateusz.loskot.net pl.comp.lang.c FAQ: http://pl.cpp.wikia.com/wiki/FAQ C++ FAQ: http://parashift.com/c++-faq-lite
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads