Wow, toll, Danke für schnelle Antwort. Klar, vielleicht können wir das lösen. Leider nicht mein Code und kommerziel genutzt, daher muss ich wohl Einschränkungen machen.
Code: Alles auswählen
....
....
...
.
if not self.inactiveFringeMap[(m,n)]:
# go for diagionals if no direkt (N, E, S, W) neighbours exist
# up left
#print self.activeWide[m-1, n-1]
#print self.activeWide[m+1, n-1]
#print self.activeWide[m+1, n+1]
#print self.activeWide[m-1, n+1]
if m > 0 and n > 0 and self.activeWide[m-1, n-1]:
deltaX = x[m] - x[m-1]
deltaY = y[n-1] - y[n]
distance = math.sqrt(deltaX * deltaX + deltaY * deltaY)
self.inactiveFringeMap[(m,n)].append(((m-1, n-1), distance))
# up right
if m < maxN and n > 0 and self.activeWide[m+1, n-1]:
deltaX = x[m+1] - x[m]
deltaY = y[n-1] - y[n]
distance = math.sqrt(deltaX * deltaX + deltaY * deltaY)
self.inactiveFringeMap[(m,n)].append(((m+1, n-1), distance))
# ---> # down right
if m < maxN and n < maxN and self.activeWide[m+1, n+1]:
deltaX = x[m+1] - x[m]
deltaY = y[n] - y[n+1]
distance = math.sqrt(deltaX * deltaX + deltaY * deltaY)
self.inactiveFringeMap[(m,n)].append(((m+1, n+1), distance))
# down left
if m > 0 and n < maxN and self.activeWide[m-1, n+1]:
deltaX = x[m] - x[m-1]
deltaY = y[n+1] -y[n]
distance = math.sqrt(deltaX * deltaX + deltaY * deltaY)
self.inactiveFringeMap[(m,n)].append(((m-1, n+1), distance))
if self.inactiveFringeMap[(m,n)]:
distanceSum = 0
for value in self.inactiveFringeMap[(m,n)]:
distanceSum += value[1]
newValue = []
for value in self.inactiveFringeMap[(m,n)]:
newValue.append((value[0], value[1]/distanceSum))
self.inactiveFringeMap[(m,n)] = newValue
else:
del self.inactiveFringeMap[(m,n)]
Abbruch passiert in Zeile 26 (siehe Code oben), im Original in Line 372 natürlich! Leider ist es eine Riesendatei und ein Riesenproject mit etwa 15 Pythondateien, kann nicht alles posten.
Code: Alles auswählen
#### Modellsteuerung #################################################
called from gw_kopp.cpp, now loading gw.py
+ now using mf2000exe.py . . .
init Modflow
init Exchange
Modflow gestartet
setting IDs
...
Inappropriate argument type.
unsupported operand type(s) for -: 'numpy.float64' and 'numpy.float64'
line 161 in setIDs in file xxx.py
line 67 in __init__ in file \yyyy.py
line 372 in makeInactiveFringeMap in file \yyyy.py
Methode setIDs konnte nicht ausgefuehrt werden.
Python rockt.