【GIS实验教程】如何计算指定多个城市的河流总长度
The following article is from 走天涯徐小洋地理数据科学 Author 走天涯徐小洋
实例教程:如何选取18个指定的城市,并计算18个市的河流长度呢?
河流与市求交集
筛选市的矢量,按属性选择市,选取对应的18个市
"市" = '无锡市' OR "市" = '扬州市' OR "市" = '徐州市' OR "市" = '湖州市' OR "市" = '苏州市' OR "市" = '合肥市' OR "市" = '连云港市' OR "市" = '宿迁市' OR "市" = '嘉兴市' OR "市" = '南京市' OR "市" = '杭州市' OR "市" = '十堰市' OR "市" = '遵义市' OR "市" = '宜昌市' OR "市" = '宜宾市' OR "市" = '淮安市' OR "市" = '重庆市' OR "市" = '阜阳市'
使用相交(Intersect)获取市矢量和河流矢量的交集
图形处理基本完成,但是由于数据是国家2000坐标系,地理坐标系,如果想获得河流长度,需要进行投影,这个时候需要将地理坐标系转换为投影坐标系
坐标系转换
坐标系的选择
我们使用的数据来源于国家基础地理数据库,使用的是国家2000地理坐标系,单位为度,为了计算距离,我们应该使用等距离投影进行计算。
我国的基础地理数据为国家2000坐标系,在ArcGIS中只有高斯克吕格投影的CGCS2000投影坐标系,高斯克吕格投影有三度带和六度带,而研究区地跨整个长江流域,所以我们需要使用大范围的投影,但是在ArcGIS里面没有这个时候就需要我们自定义一下投影
投影参数我进行了如下的修改:
我选择了亚洲区域的等距离投影,在此基础进行修改 研究区位于东经100-125范围内,为了减小变形,我中央子午线设置为115度 椭球的设置,地理坐标系选择CGCS2000,也就是原始数据使用的地理坐标系
设置完成后,就可以将国家2000地理坐标系转为等距离投影了,计算后矢量长度单位为米。
更多坐标系知识请参阅下面文章:
将投影后的数据属性表导出,到EXCEL中进行计算,导出的时候推荐导出为文本型,默认是txt后缀名,为了打开方便,建议手动修改为.csv
河流分城市长度计算
ArcGIS导出属性表乱码
ArcGIS导出的属性表,默认一般为UTF-8编码,而windows系统一般使用的是ANSI,直接EXCEL会发现是乱码
建议使用NOTEPAD++打开,然后转换编码,编码-转为ANSI编码,这样就能够让EXCEL识别了。
数据透视表计算分市河流长度
选取市、河流长度(Shape_Length)所在的列,建立数据透视表
数据透视表行选择“市”字段,求和项:SHAPE_Length,这样就计算得到了每个市的河流长度,单位为米。
如果觉得不错还请转发分享哦,转发朋友圈集赞15个,截图发送公众号,即可获取公众号练习资料
有疑问或者更好的想法可以留言讨论哦
欢迎投喂徐小洋鸡腿,点赞,在看