数据库主要分为4个大类,按照点线面来区分,每个大类下又分为至少两个小类。整体现势性为2015年;图层内容含水系(点、线、面层),公路、铁路(线层),居民地(点、面层),居民地地名(注记点),自然地名(注记点)等9类要素层。
有多种方式来确定范围,平时用的较多的是按照省份或者是框选的方式,其实这个选择的范围是不精确的,下载完之后数据还是需要用界线去裁剪,所以这里也不用纠结,大概框选区域就行,下面我以海南省的地理数据库信息为基础,为大家演示下载的过程。
4.如实填写即可,获取验证码,然后得到需要下载的数据,如下图,即可下载了!!!1.将数据解压到单独的文件夹,如下图,每个文件夹中都有相同名称的文件,要将所有文件夹中的同类文件合并
如果放在从前已经打开python准备遍历文件夹,然后找到同名称的shp进行合并了,但是我最后的目的还是想做一个可以直接加载到arcgis中方便使用的工具,所以我决定用model builder试一下。大概分析一下有这样几个问题需要解决:3.合并的嵌套结构如何在model builder中表示出来通过遍历文件夹的方式来获得目录下每个文件夹的名称,而文件夹下有二级名称,可以直接通过定义路径的方式获得所有的要素类。
通过计算值的方式获取到指定的要素类,我们以水体的面要素为例进行编辑,首先根据得到的文件名获取水体的要素
def huoqu(value):
filename='F:\\图文编辑和教学\\推文\\10.10\\'+value+'\\'+value+'\\hyda.shp'
return filename
得到的文件需要与后面的迭代文件进行合并,而整个过程也不能够出现使用前面的数据和后面生成的数据一起合并,这种情况在python代码中比较好处理,但是 在model builder中属于比较难处理的一种问题。所以仍然考虑用计算值的方式来求解,通过计算值和合并的结果产生关联,利用这种关联将合并之后的数据与迭代数据进行合并
def hebing():
filename='C:\\Users\\yanza\\Documents\\ArcGIS\\Default.gdb\\c1_Merge_Copy'
return filename
由于第一次迭代的时候合并的结果为空,没有该图层,所以需要事先生成一个指定位置的图层以防运行时出现错误!!!
部分区域还需要进一步完善,可能有的数据库并不一定有hyda的文件,因此选择的时候需要先探究其是否存在的问题,所以在计算值的时候需要用os.path.exists()函数来确定文件是否存在,如果存在,就输出该文件,如果不存在就用一个空的文件代替进行合并即可,修改计算值的代码如下
def huoqu(value):
import os
filename = 'F:\\图文编辑和教学\\推文\\10\\' + value + '\\' + value + '\\hyda.shp'
filename1 = 'C:\\Users\\yanza\\Documents\\ArcGIS\\Default.gdb\\c1_Merge_Cop' '此为空文件
if os.path.exists(filename):
return filename
else:
return filename1