赞
踩
在GIS坐标系统中有地理坐标系和投影坐标系两大类,地理坐标系使用三维球面或椭球面为定义地物坐标,投影坐标系是采用一定的数学方法将球面坐标转换到平面坐标,方便理解和计算。
在常见的GIS分析中需要对面状要素求解面积,常见的面积对应有椭球面面积和平面面积,椭球面面积求解较为困难,因此人们经常将椭球坐标转换到平面坐标系下,以计算平面面积。
在ArcMap中有几种计算面积的方法:
此方法适用于投影坐标系下的面状要素,操作较为简单,不可用于计算地理坐标系下的要素面积,当没有给要素进行投影坐标系指定时,该方法会被禁用。
在使用字段计算器计算面积时,可以在python编辑框下使用公式 :
!SHAPE.area@squarekilometers!
此公式可用于计算地理坐标系和投影坐标系下的面积,单位为km²。当要素只有地理坐标系时,计算椭球面面积,得到的结果与公式
!SHAPE.geodesicarea@squarekilometers!
相同,上述公式用于计算椭球面面积,单位为km²
GDAL中使用GetGeometryRef()获取要素的几何对象,调用几何对象的GetArea()或Area()方法,得到面积。此方法不会考虑参考系问题,只会依据面要素节点集坐标计算面积,也不会考虑单位。
- from osgeo import ogr
-
- ds=ogr.Open(r'D:\ArcGIS\DataBase\xian1980坐标系.shp') #只有地理坐标系
-
- layer=ds.GetLayer(0)
- for feature in layer:
- geometry=feature.GetGeometryRef()
- area1=geometry1.Area()
- 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相同。
综上所述,如果不知道计算的要素是否投影时,直接用字段计算器采用公式!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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。