No free BITSYS channels (BITCHN)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Claudia

hallo,

ich habe folgendes problem:
ich habe ca. 330 000 textfiles und möchte damit ebensoviele polygone erzeugen. dabei dient mir python als programmiersprache für das gis-programm ArcGIS 9 (weiß nicht, ob das weit verbreitet ist und das jemand kennt...). ein textfile unter vielen sieht folgendermaßen aus:

1
-0.1026990E+06 0.2918890E+06
-0.1048670E+06 0.2951340E+06
-0.1119375E+06 0.2880625E+06
-0.1119375E+06 0.2880625E+06
End

wenn ich das programm durchlaufen lasse braucht der computer erstens ziemlich lang (was bei dieser fileanzahl auch noch verständlich ist) und außerdem schreibt er mir nach einer zeit " No free BITSYS channels (BITCHN)".
kann ich das script soweit verändern, daß das schneller geht bzw. nichtmehr abstürzt? einen tip hab ich bekommen, daß ich die pfade der textfiles in ein anderes textfile zeilenweise schreiben soll und python somit zuerst auf dieses textfile zugreift und danach erst auf das textfile mit den koordinaten. weiß nicht ob das sinnvoll ist bzw. wie das funktioniert...

hat vielleicht irgendwer eine idee???
hoffe, ich hab das irgendwie halbwegs verständlich erklären können,
lg claudia

Code: Alles auswählen

# ---------------------------------------------------------------------------
# Generate a coverage from a file of coordinates
# ---------------------------------------------------------------------------

# Import system modules
import sys, string, os, win32com.client

# Create the Geoprocessor object
gp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")

nr = 000000
for zahl in range(336303):
    nr += 1
    input_file = "d:/text/text%06i.txt" % nr
    output_coverage = "d:/poly/poly%06i" % zahl
   
    try:
        # Process: Generate the coverage from the coordinate file...
        gp.Generate_arc(input_file, output_coverage, "polygons")
    
    except:
        # If an error occurred when running the tool, print out the error message.
        print gp.GetMessages()
Edit (Leonidas): Code in Python-Tags gesetzt.
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

Claudia hat geschrieben:außerdem schreibt er mir nach einer zeit " No free BITSYS channels (BITCHN)".
Ist das eine Fehlermeldung des aufgerufenen Programms oder eine Python-Exception?
Gast

er öffnet ein eigenes fenster und schreibt dann FATAL ERROR und "No free BITSYS channels (BITCHN)" anschließend öffnet sich nach bestätigung mit OK ein zweites fenster mit "runtime error". danach wird python geschlossen.
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

Anonymous hat geschrieben:er öffnet ein eigenes fenster und schreibt dann FATAL ERROR und "No free BITSYS channels (BITCHN)" anschließend öffnet sich nach bestätigung mit OK ein zweites fenster mit "runtime error". danach wird python geschlossen.
Wer ist denn "er"? Für mich klingt das sehr nach einem Problem von ArcGIS, Python würde keine Fehlermeldungen in einem Windows-Dialog anzeigen sondern diese auf der Kommandozeile ausgeben.

Wen Du nach 'ArcGIS "No free BITSYS channels (BITCHN)"' googelst, gibt es folgenden Treffer aus dem ESRI-Forum, der nichts mit Python zu tun hat.

http://forums.esri.com/Thread.asp?c=93& ... 142748&g=1

Sorry, aber mir scheint, Du bist hier im falschen Forum :cry:
Gast

das im esri forum hab ich auch schon gefunden, aber ich hab gehofft, dass ihr vielleicht eine idee habt...bis jetzt hattet ihr immer super lösungen...
naja, mal schaun...

danke jedenfalls, lg claudia
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Das Problem liegt nicht auf der Pythonseite, deshalb können wir nicht helfen.

Einen Tipp jedoch

Code: Alles auswählen

nr = 000000
ist unsinnig, da "%06i" die Zahl entsprechend formatiert. Desweiteren ist, und das ist das eigentliche Problem:

Code: Alles auswählen

>>> nr = 000123
>>> nr
83
>>> nr = 000987
SyntaxError: invalid token
Der Grund liegt darin, dass Zahlen, die mit einer 0 beginnen (und keinen Dezimalpunkt enthalten) als Oktalzahlen (Basis 8) angesehen werden!

Gewöhne dir das manuelle Auffüllen von Nuller besser schnell ab ;)
Claudia

danke joghurt,
da ich programmieranfängerin bin, bin ich für jeden tip dankbar...

bei meinem skript ist es so, dass ich max. 80 polygone erstellen kann, und das programm dann abstürzt. ist es möglich irgendwie in einer schleife einen befehl einzufügen, indem ich den zwischenspeicher oder arbeitsspeicher leeren kann? vielleicht klappt es ja dann...
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Da wirst du wohl die API des Programmes das abstürzt zu Rate ziehen müssen.

Der Crash ist kein Pythonproblem, und da ich das Programm auch nicht kenne, kann ich da nicht weiterhelfen.
Antworten