txt轉(zhuǎn)換為geojson
import json
f_in = open("/Users/XXXXX/Desktop/aoi_samples.txt", "r", encoding="utf-8-sig")
input_data = f_in.readlines()
geojson = '{"type":"FeatureCollection","features":['
for num, row in enumerate(input_data):
? ? seg_row = row.strip("\r\n").split("\t")
? ? seg_length = len(seg_row)
? ? # 取header列信息,并找到geom的位置供后續(xù)處理使用
? ? if num == 0:
? ? ? ? tag_set = seg_row
? ? ? ? geom_loc = tag_set.index("Geom")
? ? else:
? ? ? ? # 將所有properties整合到dict中削罩,最后直接導(dǎo)出json格式
? ? ? ? dict_tmp = {}
? ? ? ? for i in range(0,seg_length):
? ? ? ? ? ? dict_tmp[tag_set[i]] = seg_row[i]
? ? ? ? # geometry構(gòu)造
? ? ? ? geom = seg_row[geom_loc].split(" (")
? ? ? ? geom_type = geom[0]
? ? ? ? if geom_type == "POLYGON":
? ? ? ? ? ? geom_set = geom[1][1:-2].split(", ")
? ? ? ? ? ? geom_coor = [[]]
? ? ? ? ? ? for tmp_geom in geom_set:
? ? ? ? ? ? ? ? geom_x = float(tmp_geom.split(" ")[0])
? ? ? ? ? ? ? ? geom_y = float(tmp_geom.split(" ")[1])
? ? ? ? ? ? ? ? geom_coor[0].append([geom_x, geom_y])
? ? ? ? else:
? ? ? ? ? ? geom_xy = geom[1][:-1].split(" ")
? ? ? ? ? ? geom_coor = [float(geom_xy[0]), float(geom_xy[1])]
? ? ? ? # 輸出最終結(jié)果瞄勾, ensure_ascii=False使中文能正常顯示
? ? ? ? geojson += '{"type":"Feature","geometry":{"type":"%s","coordinates":%s},"properties":%s},\n' \
? ? ? ? ? ? ? ? ? % (geom_type, geom_coor, json.dumps(dict_tmp, ensure_ascii=False))
geojson = geojson[:-2] + '\n]}'
geojson_file = open('/Users/XXXXX/Desktop/aoi_samples.geojson', 'w')
geojson_file.writelines(geojson)
修改路徑后就能直接使用费奸,非常方便,需要頭文件进陡,且有Geom標(biāo)示坐標(biāo)
其中愿阐,使用到j(luò)son.dumps,其中的參數(shù)參考如下文章趾疚,寫的非常完整
http://www.reibang.com/p/cfbcd9f8691c