python+gdal+excel构建矢量图

Florence ·
更新时间:2024-11-11
· 762 次阅读

本文介绍一个从excel中读取数据,从而构建点状矢量文件的方法(当然构建面状,线状也是类似的,如有需要可以留言),使用的python+gdal库+xlrd。当然本程序不一定是最简化的,各位读者可以自行优化。本文并不是附上所有的程序而是针对重要的代码段进行讲解。
first:

import xlrd ###读取excel文件,比较简单,读取出每个点的 ##信息比如经纬度,还有其他的属性。 file_path = r'C:\Users\Administrator\Desktop\AQ.xls' data = xlrd.open_workbook(file_path) table = data.sheet_by_name('Sheet1') nrows = table.nrows ncols = table.ncols rowvalue = table.row_values(1) col_values = table.col_values(1) lon = table.cell(1,4).value lat = table.cell(1,5).value

second:

import osgeo.ogr as ogr import osgeo.osr as osr ##导入相应的gdal库然后设置好矢量驱动,矢量坐标系等一系列信息 driver = ogr.GetDriverByName("ESRI Shapefile") data_source = driver.CreateDataSource("d:/test/shp/yanmu.shp") srs = osr.SpatialReference() srs.ImportFromEPSG(4326) layer = data_source.CreateLayer("yanmu", srs, ogr.wkbPoint)

third:

##这一部分就是建立字段,并向字段内添加信息 layer.CreateField(ogr.FieldDefn("Latitude", ogr.OFTReal)) layer.CreateField(ogr.FieldDefn("Longitude", ogr.OFTReal)) feature.SetField("Latitude", lat) feature.SetField("Longitude", lon)

注意在建立字段是设置的字段的类型,下图反映了字段类型常量和ogr类型之间的对应关系。
在这里插入图片描述

four:

##第四部分就是收尾,输入坐标,然后关闭图层和数据集 wkt = "POINT(%f %f)" % (float(lon) , float(lat)) point = ogr.CreateGeometryFromWkt(wkt) feature.SetGeometry(point) layer.CreateFeature(feature) feature = None data_source = None

以上便是总结,如有疑问,欢迎留言。


作者:xjh0929



矢量 Python 矢量图

需要 登录 后方可回复, 如果你还没有账号请 注册新账号