Attributtabelle mittels Cursor mit Daten füllen

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
GunnarB
User
Beiträge: 2
Registriert: Sonntag 14. Januar 2018, 20:11

Hallo allesamt,

neuerdings probiere ich mich als Programmiere und neben all den Rückschlägen hat sich doch jede Menge Spaß dabei ergeben! Dennoch hapert es gerade und ich mjag euch folgendes fragen:

Wieso landen die ausgewählten Daten nicht in meiner Attributtabelle?

Wenn ich mir "row" als print ausgeben lasse, finden sich die gewünschten Daten und der Filter nach Stationsnummer funktioniert ebenfalls.

Viele Dank für diejenigen, die sich meiner Sache annehmen!

Code: Alles auswählen


# -*- coding: cp1252 -*-

###Arbeitsbedingungen schaffen
#-----------------------------
print "Schaffe Arbeitsbedingungen."
print "---------------------------"
import arcpy
import datetime
import os
arcpy.env.overwriteOutput = True
arcpy.env.workspace = r"D:\Studium\MASTER\Semester3\MIII_Python\Project3"


#Pointshapefile erstellen
point = arcpy.CreateFeatureclass_management(arcpy.env.workspace, "stationen.shp", "point", "", "", "", "32632")

#Spalten im Shapefile hinzufuegen
arcpy.AddField_management(point,"nummer","DOUBLE")
arcpy.AddField_management(point,"hoehe","FLOAT")
arcpy.AddField_management(point,"name","TEXT")
arcpy.AddField_management(point,"p anno","FLOAT")

print "Programme geladen und Punktshape mit Spalten erstellt."
print "\n"


###Stationsdaten aus Infotextfile einfügen
#-----------------------------------------
print "Auslesen der Stationsdaten."
print "---------------------------"
print "\n"

#Stationsdaten aus "RR_DailyValues_Description_Stations.txt" einlesen

cursor = arcpy.da.InsertCursor(point, ["nummer", "hoehe", "name", "SHAPE@XY"])

statinfo = open(r"D:\Studium\MASTER\Semester3\MIII_Python\Project3\RR_DailyValues_Description_Stations.txt", "r")

statinfo.readline()
statinfo.readline()

inputinfo = statinfo.readlines()

for line in inputinfo:

    liste = line.split()
    
    #definieren von allen Feldern! Gelesen aus der TXT-Datei.
    nummer = liste [0]
    date1 = liste [1]
    date2 = liste [2]
    hoehe = liste [3]
    x = liste [4]
    y = liste [5]
    name = liste [6]
    state = liste [7]

    row = [nummer.strip(), hoehe.strip(), name.strip(), (float(x), float(y))] #strip nimmt nur den benötigten inhalt raus und löscht leerzeichen
    
    #Benötige Stationsdaten in Shapefile schreiben
    if nummer == "1095" or nummer == "1637" or nummer == "1691" or nummer == "1692" or nummer == "3649" or nummer == "3650":
        print "Stationsdaten:" 
        print row
        print "\n"
        cursor.insertRow(row)

del cursor, row
statinfo.close()

print "Punktshape mit Stationsdaten gefüllt."
print "\n"

Ja ich weiß, sehr detailliert. Ich bin halt noch Anfänger und werde das Ganze noch vorstellen
Antworten