2023年6月29日发(作者:)
osm⽂件的读取、转换及处理osm⽂件的读取、转换及处理本代码是对openstreetmap 中武汉市地图的osm⽂件进⾏处理,将node进⾏提取并转换为json⽂件,然后读取经纬度,寻找重复的node。import osimport jsonfrom lxml import etreeimport ('your filepath')osmfile = ''def iter_element(file_parsed, file_length, file_write): current_line = 0 try: for event, element in file_parsed: current_line += 1 print (current_line/float(file_length)) elem_data = ng(element) elem_dict = (elem_data, attr_prefix="", cdata_key="") if ( == "node"): elem_jsonStr = (elem_dict["node"]) file_(elem_jsonStr + "n") # 每次读取之后进⾏⼀次清空 () while vious() is not None: del ent()[0] except: passfile_length = -1for file_length, line in enumerate(open(osmfile, 'rU',encoding = 'utf-8')): passfile_length += 1print( "length of the file:t" + str(file_length))file_node = open(osmfile+"_","w+")file_parsed = rse(osmfile, tag=["node"])iter_element(file_parsed, file_length, file_node)file_()osm_json_file = 'D:_'list1 = []with open(osm_json_file,encoding = 'utf-8') as f: for data in f: tulist = [] data= (data) lat = float(data['lat']) (lat) lon = float(data['lon']) (lon) (tuple(tulist))source = list1from collections import defaultdictfrom collections import CounterCounter(list1)i = 0for k,v in Counter(list1).items(): if v == 2: i += 1 print(k,v)print(i)
发布者:admin,转转请注明出处:http://www.yc00.com/web/1687981739a63422.html
评论列表(0条)