arcgis计算几何周长、面积被禁用
引言
博主使用的是arcmap10.8版本,之前去搜了一下,有的文章说是经纬度搞反,有的说是没有定义投影,但是我的shp文件是定义过投影的(GCS_WGS_1984)所以遇到这种情况重新定义投影并不能解决,以下是适用于定义过投影的办法:
为什么会报错?
文件定义的 GCS_WGS_1984 属于"地理坐标系 (GCS)",它的基本单位是"度 (Degree)"(也就是经纬度)。
地球是个球面,如果你直接在球面上算面积,算出来的单位会是荒谬的"平方度",这在现实物理世界中没有任何衡量意义。
要想计算出真实的"平方米"或"平方公里",你必须把这个三维的球面像剥橘子皮一样,平摊到一个二维的平面上,这就需要将数据转换成 "投影坐标系 (PCS)",它的基本单位才是米 (Meter)。ArcGIS 的平面算法只认"米"。
解决步骤
为了计算面积,你需要生成一个新的、被投影过的 Shapefile。
第一步
打开 ArcToolbox (系统工具箱)。
依次展开:Data Management Tools (数据管理工具) -> Projections and Transformations (投影和变换) -> 双击打开Project (投影) 工具。(千万别选成"定义投影")
第二步:设置参数
输入数据集: 选择你现在的这个报错的 shp 文件。
输出数据集: 为生成的新文件选一个保存路径并命名(例如加个后缀 _Projected)。
输出坐标系(最关键的一步): 点击旁边的小手图标,我们要选一个投影坐标系 (Projected Coordinate Systems)。
如果你追求面积计算的极致准确性(尤其是大范围数据): 依次点开 Projected Coordinate Systems -> Continental -> Asia -> 找到 Asia_North_Albers_Equal_Area_Conic(阿尔伯斯等面积投影,这是专门为了算面积不差分毫设计的)。
如果你的数据只是局部小范围(比如一个县市): 可以选择对应的 UTM 投影(例如依次点开 Projected Coordinate Systems -> UTM -> WGS 1984 -> Northern Hemisphere -> 找到你所在区域的 UTM 带号,如 WGS 1984 UTM Zone 47N)。
这里博主使用的是Asia_North_Albers_Equal_Area_Conic,可以在搜索框直接搜索
第三步:计算面积
点击确定,等待工具运行完成。ArcGIS 会自动把新生成的 shp 文件加载到图层中。
右键打开这个新图层的属性表。
点击左上角菜单 -> 添加字段 (Add Field),命名为 Area,类型选择 双精度 (Double)。
右键点击新建的 Area 字段名,选择 计算几何 (Calculate Geometry)。
博主亲测有效
以下是其他博主说的定义投影方法:
----------------------------------------------------------------分割线--------------------------------------------------------