当前位置:   article > 正文

ArcGIS面积计算问题_arcgis计算面积

arcgis计算面积

1. 坐标系

       在GIS坐标系统中有地理坐标系和投影坐标系两大类,地理坐标系使用三维球面或椭球面为定义地物坐标,投影坐标系是采用一定的数学方法将球面坐标转换到平面坐标,方便理解和计算。

2. 面积计算问题

       在常见的GIS分析中需要对面状要素求解面积,常见的面积对应有椭球面面积和平面面积,椭球面面积求解较为困难,因此人们经常将椭球坐标转换到平面坐标系下,以计算平面面积。

在ArcMap中有几种计算面积的方法:

2.1 计算几何

       此方法适用于投影坐标系下的面状要素,操作较为简单,不可用于计算地理坐标系下的要素面积,当没有给要素进行投影坐标系指定时,该方法会被禁用。

2.2 字段计算器

       在使用字段计算器计算面积时,可以在python编辑框下使用公式 :

!SHAPE.area@squarekilometers!

       此公式可用于计算地理坐标系和投影坐标系下的面积,单位为km²。当要素只有地理坐标系时,计算椭球面面积,得到的结果与公式

!SHAPE.geodesicarea@squarekilometers!

相同,上述公式用于计算椭球面面积,单位为km²

2.3 python+GDAL

       GDAL中使用GetGeometryRef()获取要素的几何对象,调用几何对象的GetArea()或Area()方法,得到面积。此方法不会考虑参考系问题,只会依据面要素节点集坐标计算面积,也不会考虑单位。

  1. from osgeo import ogr
  2. ds=ogr.Open(r'D:\ArcGIS\DataBase\xian1980坐标系.shp') #只有地理坐标系
  3. layer=ds.GetLayer(0)
  4. for feature in layer:
  5. geometry=feature.GetGeometryRef()
  6. area1=geometry1.Area()
  7. area2=geometry1.GetArea()

       输出的结果 area1=area2且将角度值的坐标直接作为平面坐标带入计算。

2.4 Arcpy接口调用

INPUTS:
in table (Table View / Raster Layer / Raster Catalog Layer / Mosaic Layer):The table containing the field that will be updated with the new calculation

field (Field):
The field that will be updated with the new calculation.

expression(SQL Expression):

The simple calculation expression used to create a value that will populate the selected rows.

expression type {String}:
Specify the type of expression that will be used.
VB——The expression will be written in a standard VB format. This is the
default.
PYTHON——The expression will be written in a standard Python format. Use of
geoprocessor methods and properties is the same as creating a 9.2 version geoprocessor
PYTHON 9.3——The expression will be written in a standard Python format. Use of
geoprocessor methods and properties is the same as creating a 9.3 version geoprocessor. field calculations with aVB Expression type are not supported on 64-bit products, including ArcGlS Pro, ArcGlS for Desktop-BackgroundGeoprocessing (64-bit) and ArcGlS for Server. To successfully use Calculate Field in these products, expressionsshould be converted to Python, or in the case of Background Geoprocessing (64-bit), background processing canalternatively be disabled.

code block {String}:
Allows for a block of code to be entered for complex expressions.

本质上arcpy字段计算器的调用还是使用ArcMap的字段计算,与2.2相同。

3. 总结

       综上所述,如果不知道计算的要素是否投影时,直接用字段计算器采用公式!SHAPE.area@+面积单位!就可以,单位可以是km²(squarekilometers),也可以换做其他,如m²(squaremeters),英亩(acres)等。

       如果是已经知道为投影坐标系时,计算几何会更快一些。

       在使用GDAL等包进行编程计算面积时,要先设置投影再计算面积,中国常用的等面积投影为Asia North Albers Equal Area Conic,在ArcMap中的位置如下图所示:

中国的投影参数为:

东偏移量False Easting:    0.0

北偏移量False Northing:   0.0

中央经线Central Meridian:       105.0

第一标准纬线Standard Parallel 1:   25.0

第二标准纬线Standard Parallel 2:   47.0

起始纬度Latitude Of Origin:     0.0

线性单位Linear Unit: Meter (1.0)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/931239
推荐阅读
相关标签
  

闽ICP备14008679号