今天又是个特殊的日子。记得和自己的父亲说一声“节日快乐!”
它来了它来啦,磨叽的小编终于把它带来啦!之前小编答应过大家,将拼接完成的天地图2015年1:100万全国路网数据分享给大家。于是乎,在今天这个天朗气清,惠风和畅的日子,小编就将数据及拼接方法分享给大家。走过路过不要错过哦!今天可是满满的干货~
1.拼接方法--Arcpy
我们的天地图2015数据是从国家地理信息公共服务平台上下载的,数据按照图幅号分为了52个数据库。因此如果我们想获得一幅完整的全国路网数据,就需要将这52个数据库中的数据拼接起来。拼接的方法就有很多了,比如数据量少的时候,我们可以选择使用arctoolbox中的merge或者append工具实现数据拼接。但是今天我们要拼接的可是52幅数据哎,难道我们要一个一个地去选择52幅数据?!我能忍鼠标也不能忍呀。于是乎,前些日子给大家安利的Arcpy就派上用场了!
上代码啦:
import arcpy,os
def MergeFileGDB(inPath, outPath, outName):
arcpy.env.workspace = inPath
mergeFilePath = outPath + os.sep + outName
print mergeFilePath
workspaces = arcpy.ListWorkspaces("*", "FileGDB")
for workspace in workspaces:
print(workspace)
arcpy.env.workspace = workspace
mergeFileExist = os.path.exists(mergeFilePath)
if mergeFileExist:
featureclasses = arcpy.ListFeatureClasses()
for fc in featureclasses:
print(fc)
if fc == "LRRL":
arcpy.Append_management(fc, os.path.join(outPath + os.sep + outName, os.path.splitext(fc)[0]),"TEST","","")
#arcpy.Merge_management(fc, os.path.join(outPath + os.sep + outName , os.path.splitext(fc)[0]))
break
else:
continue
else:
arcpy.CreateFileGDB_management(outPath, outName)
featureclasses = arcpy.ListFeatureClasses()
for fc in featureclasses:
arcpy.FeatureClassToFeatureClass_conversion(fc, outPath + os.sep + outName, os.path.splitext(fc)[0])
in_file = r"F:\n"
out_location = r"F:\0618z"
out_name = "GHMerget.gdb"
MergeFileGDB(in_file, out_location,out_name)
代码转自:
https://blog.csdn.net/sprintwater/article/details/38456579
不得不说这篇博客的博主Arcpy及Python应用得比小编扎实得多,小编自己编写的那份乱七八糟不堪入目的代码就不贻笑大方了。大家以后若是处理相似的问题,就使用上面分享的代码,换个路径及图层名称就可以了。
2.数据分享
来吧,展示:
其中:绿色的图层为拼接完成后得到的道路路网数据;紫色图层为拼接完成后的铁路路网数据。
由于是根据图幅下载的,所以大家可以明显地看到图幅划分的痕迹。小伙伴们只需要根据我国国界的矢量图裁剪一下就可以了。
下面和我们之前分享的osm数据对比一下:
由于数据量过大,小编这里就不再细节展示了。紫红色图层为osm数据,可以明显地看到,今天我们分享的数据还是较osm更为详尽的。
以上内容就是今日的全部内容,路网数据的分享也即将告一段落。如果大家有好的数据资源记得分享给小编哦,独乐乐不如众乐乐嘛!