登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 151170080 于 2020-10-13 19:57 编辑
在使用ncl绘制扣取中国区域的数据并绘制等值线填充图的过程中,发现ncl官网上的中国区域轮廓是有问题的(图1)。要扣取中国区域的数据需要一幅精确的中国地区的shapefile文件。国外有一个专门提供shape文件的网站(https://gadm.org/download_country_v3.html),但是也是不准确的。网上有关中国区域的shape文件要么是收费的,要么就不准确,所以利用全国地理信息资源目录服务系统1:100万的全国基础地理数据库,自己制作了一幅全国区域的polygon类型的shapefile文件使用。下面是制作步骤
图1
一、下载全国77幅基础地理信息文件
全国地理信息资源目录服务系统上免费提供了1:100万的基础地理信息文件,一共77幅。在该网站上注册之后,就可以免费下载。解压缩之后,gdb文件列表如下图右所示。
二、将77个gdb文件合并成一个gdb文件并导入到Arcgis中
我自己尝试了两个方法和并这些文件。一个是使用Arcgis软件进行和并,另一个方法是使用GDAL命令进行和并,为了后面操作的连续性和统一性,我建议使用Arcgis软件进行和并。和并步骤如下:
1.建立一个存放和并文件的文件夹,命名为Final_file,并将77个基础信息文件中的A49.gdb(可以是任意一个,这样可以省去建立AANP、AGNP、BOUA等features的麻烦)复制到Final_file中并改名为final.gdb
2打开安装Arcgis软件时,附带 的Python IDE运行如下代码
import os
import sys
import arcpy
arcpy.env.workspace = "G:\Nation_geodata\China_geodata"
workspaces = arcpy.ListWorkspaces("*","FileGDB")
for workspace in workspaces:
print(workspace)
arcpy.env.workspace = workspace
featureclasses = arcpy.ListFeatureClasses()
for fc in featureclasses:
print(fc)
output = os.path.join("G:\Nation_geodata\Final_file\\final.gdb",os.path.splitext(fc)[0])
print output
arcpy.Append_management(fc,output)
这个过程时间比较长
3.导入final.gdb文件
首先打开ArcCatalog软件,导入Final_file文件夹(使用Folder Connections,这样final.gdb文件就会一块导入进去),然后在Arcgis中的layer添加final.gdb数据中的BOUA
三、提取中国部分(不包括九段线区域)轮廓
提取中国区域轮廓就是一级一级和并的过程,步骤如下:
1.根据PAC筛选中国区域
完整的77幅数据包括一些国外的部分,我们首先将这一部分去除掉。首先打开BOUA的Attribute table,并将PAC升序排列,不难发现,国外区域的PAC值都小于902,另外,九段线区域的PAC值为250100。然后在Selection->Select By Attributes,输入PAC >902 AND PAC<250100 OR PAC >250100进行筛选。然后在BOUA图层中将选中的区域导出(选择一个gdb类型的file,可以时final.gdb).接着,Geoprocessing->Dissolve,合共各个方格文件,Input Features 选择刚刚导出的文件,勾选PAC和NAME
2. 创建新的Field,进行国界融合
添加刚刚disolve的文件作为新的图层,并且打开Attribute Table,新建一个field,命名为Nation,Type为Long Integer.然后对使用Field Calculator对Nation赋值100000. 接着,Geoprocessing->Dissolve和并polygon,Input Features选择添加Nation的那个文件,勾选Nation. 最后得出的图如下右边的图. 然后将该图层导出为shapefile文件即可.
这样中国区域的polygon shapefile文件就制作完成了.当然,具体某个省的polygon文件也可以按照上面的方法制作,思路是一样的.
如果过程中有什么问题,欢迎留言讨论!
来自群组: 南京大学风云英华 |