inputName='./ExpresswayA.csv' zones=np.load("./ExpresswayALane.npy",allow_pickle=True) #====================================user input=================== outputNme=inputName[:-4]+"withLane.csv" df = pd.read_csv(inputName) rawData = pd.read_csv(inputName) with open(outputNme, 'w', newline='') as csvfile2: spamwriter = csv.writer(csvfile2) with open(inputName, newline='') as csvfile: spamreader = csv.reader(csvfile) counter=0 for row in spamreader: print(counter) if counter ==0: row.append("laneNumber") counter+=1 spamwriter.writerow(row) continue; laneNumber=-1 print(row) for i in range(len(zones)): print(row[10]) print(row[11]) result = cv2.pointPolygonTest(zones[i], (int(row[10]),int(row[11])), False) if result==1 : laneNumber=i print(str(result)+"|"+str(i)) row.append(str(laneNumber)) counter+=1 spamwriter.writerow(row)
时间: 2023-08-23 17:53:28 浏览: 153
mmzone.rar_Linux/Unix编程_Unix_Linux_
这段代码是一个简单的Python脚本,它读取一个名为"ExpresswayA.csv"的CSV文件,并根据一些条件将数据写入到另一个CSV文件中。
首先,代码中使用了`np.load`函数加载了一个名为"ExpresswayALane.npy"的Numpy数组文件,并将其存储在变量`zones`中。
然后,代码读取了输入文件的内容,并将其存储在名为`df`和`rawData`的Pandas数据帧中。
接下来,代码创建一个新的输出文件名`outputNme`,它是将输入文件名的扩展名替换为"withLane.csv"。
代码使用`csv.writer`和`csv.reader`来逐行处理输入文件和输出文件。它通过遍历输入文件的每一行,并根据特定条件判断所属的车道号,将结果添加到当前行的末尾。
最后,代码将处理后的每一行写入到输出文件中。
请注意,这段代码依赖于一些库和函数,例如`numpy`、`pandas`和`cv2.pointPolygonTest`(OpenCV函数)。如果你要运行这段代码,请确保你已经安装了这些库,并且输入文件和Numpy数组文件位于正确的路径上。
阅读全文