Я пишу код с использованием python для генерации точечного шейп-файла в ArcMAP. У меня 1000 случайных возможностей по 50 очков (в FileA (1000: 50), и мне нужно попробовать все из них.
Координаты X каждой точки = ФайлB (:, 1). Координаты Y каждой точки = ФайлB (:, 2).
для генерации последовательности, я беру первую строку FileA, а число в FileA (1,1) соответствует положению в новой последовательности точки 1 в FileB
Я пытаюсь создать цикл, в котором я создаю эти последовательности, следуя позиции в каждой строке FileA.
У меня есть предыдущий пост:
AttributeError: у объекта 'str' нет атрибута 'toInteger'
Я изменил 'entry.toInteger () [0]' на 'int (entry [])'. Смешивание языков ...
У меня новая ошибка:
'tempXYFile.writerow('{0},{1}'.format(coordinates[int(entry)][0],coordinates[int(entry)][1])) IndexError: list index out of range'
Буду признателен за любую помощь!
Это мой код:
import csv
# create 1000 XY sequences
print 'Start of the script'
sequences = csv.reader(open('50VolcanoPaleoOrder-11-01-2012.csv','rb'),delimiter=',')
coordinates = []
# read coordinates of volcanos and store in memory
print 'Start reading in the coordinates into the memory'
coordinates_file = csv.reader(open('seq50.csv','rb'),delimiter=',')
for coordinate in coordinates[1:]:
coordinates.append(coordinate)
del coordinates_file
i = 1
for sequence in sequences:
print 'sequence # {0}'.format(i)
j = 1
tempXYFile = csv.writer(open('tempXY.csv','w+'),delimiter=',') #add the parameter to create a file if does not exist
for entry in sequence:
tempXYFile.writerow('{0},{1}'.format(coordinates[int(entry)][0],coordinates[int(entry)][1]))
print 'Entry # {0}: {1},{2}'.format(j, coordinates[int(entry)][0],coordinates[int(entry)][1])
j = j + 1
i = i + 1
del tempXYFile
print 'End of Script'