想通过计算核密度分析后每个区域的质心坐标,所以要将每个类别形成面。如题,
arcgis的栅格数据进行重分类后,有八类:
但进行栅格转面后转出的面要素只有一个分类“8”获得了grid_code:
请问这是什么原因?查遍全网都没有这种情况
想通过计算核密度分析后每个区域的质心坐标,所以要将每个类别形成面。如题,
arcgis的栅格数据进行重分类后,有八类:
但进行栅格转面后转出的面要素只有一个分类“8”获得了grid_code:
请问这是什么原因?查遍全网都没有这种情况
引自免费微信小程序:皆我百晓生
遇到在ArcGIS中进行栅格数据重分类并转换为面要素时,只有一类被成功转换的情况,这可能由几个因素导致。以下是一些可能的原因及解决策略:
Identify
工具检查不同位置的值。grid_code
字段应该正确地从输入栅格中的分类值映射到输出的面要素类。Set Null
工具可以将这些值设为一个特定值,确保所有区域都被正确分类。grid_code
字段是浮点型,可能会导致数据丢失或转换错误。import arcpy
from arcpy.sa import *
# 输入栅格路径
inRaster = "C:/path/to/your/raster"
# 查看栅格统计信息
desc = arcpy.Describe(inRaster)
print("Raster Name:", desc.name)
print("Raster Type:", desc.dataType)
# 使用Identify工具检查栅格值
xy = (100, 200) # 示例坐标
value = arcpy.GetCellValue_management(inRaster, str(xy))
print("Value at", xy, "is", value)
# 输出矢量文件路径
outPoly = "C:/path/to/output/polygon.shp"
# 设置栅格转面参数
arcpy.RasterToPolygon_conversion(inRaster, outPoly, "NO_SIMPLIFY", "VALUE")
# 检查输出面要素类属性
outPolyDesc = arcpy.Describe(outPoly)
print("Output Polygon Name:", outPolyDesc.name)
print("Output Polygon Type:", outPolyDesc.dataType)
# 打开属性表检查grid_code字段
fields = ["grid_code"]
with arcpy.da.SearchCursor(outPoly, fields) as cursor:
for row in cursor:
print("Grid Code:", row[0])
通过上述步骤,你应该能更深入地了解问题所在,并采取相应的措施解决它。如果问题仍然存在,可能需要进一步检查数据源、转换过程中的具体参数设置,或是尝试不同的转换方法。