Python将Excel生成SHP

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import gdal
import xlrd
import shapefile


# open the excel file
excel_file = xlrd.open_workbook("../geodata/highest-mountains-europe.xlsx")

# get the first sheet
sh = excel_file.sheet_by_index(0)
w = shapefile.Writer(shapefile.POINT)


# fields available GeoNameId    Name    Country    Latitude    Longitude    Altitude (m)
w.field('GeoNameId','F')
w.field('Name', 'C')
w.field('Country', 'C')
w.field('Latitude', 'F')
w.field('Longitude', 'F')
w.field('Altitude', 'F')

# loop over each row in the excel sheet
for rownum in range(sh.nrows):
    # skips over the first row since it is the header row
    if rownum == 0:
        continue
    else:
        x_coord = sh.cell_value(rowx=rownum, colx=4)
        y_coord = sh.cell_value(rowx=rownum, colx=3)
        w.point(x_coord, y_coord)

        w.record(GeoNameId=sh.cell_value(rowx=rownum, colx=0), Name=sh.cell_value(rowx=rownum, colx=1),
                 Country=sh.cell_value(rowx=rownum, colx=2), Latitude=sh.cell_value(rowx=rownum, colx=3),
                 Longitude=sh.cell_value(rowx=rownum, colx=4),Altitude=sh.cell_value(rowx=rownum, colx=5))
        print( "Adding row: " + str(rownum) + " creating mount: " + sh.cell_value(rowx=rownum, colx=1) )

w.save('../geodata/highest-mountains')
posted @ 2016-08-20 10:19  ParamousGIS  阅读(3131)  评论(0编辑  收藏  举报