[英]Read XY Coordinates from Multiple Excel Sheets Using Abaqus/Python Script
我有一堆CT扫描图像。 使用Matlab处理(这些堆栈中的一幅图像)CT扫描图像后,我将每个不同边界区域的XY坐标保存在不同的Excel工作表中,如下所示:
I = imread('myCTscan.jpeg');
BW = im2bw(I);
[coords, labeledImg] = bwboundaries(BW, 4, 'holes');
sheet = 1;
for n=1:length(coords);
xlswrite('fig.xlsx',coords{n,1},sheet,'A1');
sheet = sheet+1;
end
然后,下一步是导入这组坐标并将其绘制到Abaqus CAE Sketch中以进行有限元分析。 我发现我的工作流程是这样的:
我搜索了一会儿,发现是这样的:
from abaqus import *
lines= open('fig.xlsx', 'r').readlines()
pointList= []
for line in lines:
pointList.append(eval('(%s)' %line.strip()))
s1= mdb.models['Model-1'].ConstrainedSketch(name='mySketch', sheetSize=500.0)
s1.Spline(points= pointList)
但这只能从一张纸上读取XY坐标,而我在上面的第3步中遇到了麻烦。 因此,我的问题是如何使用Abaqus / Python(Abaqus 6.14,Python 2.7)脚本在不同的工作表中读取这些坐标?
我是Python编程的新手,我可以阅读和理解语法,但是写得不太好(我仍在努力如何在Abaqus中导入Python模块)。 几乎不可能手动键入每个坐标(例如在Abaqus的modelAExample.py教程中),因为我的每个CT扫描图像都可以具有100 ++的边界区域和10k ++的点。
我正在使用:
Windows 7 x64
Abaqus 6.14(内置Python 2.7)
Excel 2013
具有图像处理工具箱的Matlab 2016a
您正在尝试将excel文件读取为逗号分隔的文件。 根据定义,CSV文件不能包含多个标签。 您的读取命令会将文件解释为csv,并且不允许您迭代文件中的选项卡(尽管这样会产生一个问题,即您在保存xlsx和读取csv时首先如何正确打开文件)。
有许多Python库可解析和处理XLS / XLSX文件。
看看pyxl并用它来读入文件。您可能会使用类似
from openpyxl import Workbook
(some commands to open the workbook)
listofnames=wb.sheetnames
for k in listofnames:
ws=wb.worksheets(k)
然后输入您剩余的命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.