如何编程将Excel电子表格(.xls)转换为 shapefile?
我有一个Excel表格,想把它转换成ESRI的shapefile格式。这个表格里有两列是X和Y坐标,还有其他列包含各种属性数据。这个表格是Excel 97格式的(也就是不是.xlsx格式)。
我希望能把它转换成一个点几何的shapefile,每一行的x,y坐标对代表一个点。理想情况下,我还想要一个第三列来指定x,y坐标对的坐标系统,并且希望这个Excel文件能包含不同的坐标系统。
我该如何把这个Excel表格(.xls格式)程序化地转换成shapefile呢?最好是用Python,但其他方法也可以接受。
5 个回答
2
xlrd 是一个用来读取Excel文件的Python模块,不过我自己还没用过。
4
这里有一个关于如何使用GDAL创建shapefile的Python教程:
http://invisibleroads.com/tutorials/gdal-shapefile-points-save.html
你只需要把源数据替换成Excel文件里的点就可以了。正如Fabian提到的,有一些库可以用来读取Excel文件(或者把它保存为DBF格式)。
另外,如果你有ESRI的ArcMap,可以把Excel文件保存为DBF格式(我记不清ArcMap是否能直接读取Excel),然后用X,Y字段把这个DBF文件添加为“事件图层”,这样就能表示这些点。ArcMap会把这些显示为特征,你可以右键点击,然后把这个图层导出为shapefile。
5
像这样吗?
import xlrd
book = xlrd_open_workbook("data.xls")
sheet = book.sheet_by_index(0)
data = [] #make a data store
for i in xrange(sheet.nrows):
row = sheet.row_values(i)
x=row[0]
y=row[1]
data.append(x,y)
import point_store
point_store.save('points-shifted.shp', [data], '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')