【ArcGIS笔记】数据处理
- 1、ARCGIS在导入Excel坐标点的时候出现“没有注册类”的情况怎么办?
确保你本机上装有office,并且版本要能够识别XLSX格式。2007以上。
- 2、导入excel时result报错
ERROR 000361: The name starts with an invalid characterFailed to execute (FeatureClassToFeatureClass).
描述
任何数据库都可以对表名和字段名的命名进行限制。例如,文件地理数据库中的表不能以数字或特殊字符(例如星号 (*) 或百分号 (%))开头。
- 3、导入地理坐标点:
创建地理空间数据库,先倒入表格,(注意:输出文件首字母不能是数字),再将表格创建要素
地理中用经纬网表示地理坐标事物时,一般都是先说纬度,再说经度。但是在ArcGIS里面x表示经度,y表示纬度!!
参看ArcGIS帮助文档:
- 5、ArcGIS相关,栅格数据和多边形矢量叠加应该怎样做?
描述为我有一份全国县级的多边形数据,另有一份全国灯光栅格数据(1km*1km),现在我希望获得每个县灯光总值和每个县灯光斑块总面积,在ArcGIS 10中应该怎么做呢?
答:在ArcToolBox下的Spatial Analyst Tools有区域分析工具Zonal,可以实现基于多边形对栅格数据进行区域统计,比如区域的mean,sum,area等 但是要求栅格数据的value是整型,如果是浮点型,有些统计值就不能获得 当然,自己用ArcEngine是一定可以实现的,只是需要自己编程,略麻烦。
- 6、arcgis中属性表怎么导出到excel里
打开特性表 导出
保存类型 选 dbase表 保存文件为dbf,可以用excel打开
7、给jpg图像设置坐标数据,图像校准
用一张带有坐标的图像作为地图,再加载jpg图像,然后右键导航栏添加工具Georeferencing。
选中,现在jpg中点击校准位置(生成绿色坐标十字),再在地图坐标中找到对应位置坐标点击(生成红色坐标十字),重复添加校准坐标即可。点击按钮,查看添加的坐标校准后的残差,然后依次点选工具箱上的Georeferencing-->rectify保存jpg图像,最好备份成tif格式。
8、ArcGIS中矢量区格网图层生成栅格图像
1、创建与矢量图层一样大的栅格图像:可以用参考已知的栅格图层转换为ASCII文件
2、ASCII转栅格:Conversion Tools-->To Raster-->ASCII to Raster
ASCII文本文件:
ASCII格数(ARCGIS支持a.txt格式)
ncols 46(列数)
nrows 42(行数)
xllcorner 425976.566600(图像左下角横坐标,非格网中心,边界处坐标)
yllcorner 4396643.610200(图像左下角纵)
cellsize 1000(格网大小,单位米)
NODATA_value -9999(缺失值)
0 0 0 0(正文栅格数值,可换行可不换)
对应投影文件a.prj如下:
Projection UTM
Zone 50
Datum WGS84
Spheroid WGS84
Units METERS
Zunits NO
Parameters
9、arcgist 中999999号错误是什么?
解决方法:
1、检查输入数据:运行工具ArcToolBox tool Data Management Tools -> Features -> Repair Geometry ,选择需要检测的图层,执行完成会有一个报警,显示的是图层的哪些行存在错误。
2、工具集问题:重新安装ArcGIS或者做如下操作:
开始-->运行-->输入cmd,回车,在命令提示符下输入
for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1
回车,滚动完毕后,再输入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
回车!直到屏幕滚动停止为止,重启电脑
3、数据过大:处理大型数据时建议使用企业地理数据库和文件地理数据库,它们没有大小限制。而个人地理数据库和 shapefile 的大小被限制在 2 千兆字节 (GB)。参考帮助:http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#//01m10000000r000000
10、多边形裁剪栅格数据
Data Management Tools-->Raster--> Raster Processing-->Clip
11、(矢量)要素图层的(统一)配色存储
1、设置好图层配色后,将其保存为*.lyr文件:右键点击一个图层,选择存储为layer文件
2、新增加图层,点击propertities=》symbology在第一行点击import选择前面存储的.lyr文件,这样新的图层就赋一样的颜色了。
11、索引图像
索引图像包括一个数据矩阵X,一个颜色映像矩阵Map。其中Map是一个包含三列、若干行的数据阵列,其中每个元素的值均为[0, 1]之间的双精度浮点型数据。Map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。在MATLAB中,索引图像是从像素值到颜色映射表值的“直接映射”。像素颜色由数据矩阵X作为索引指向矩阵Map进行索引,例如,值1指向矩阵Map中的第一行,值2指向第二行,以此类推。
如下图:
图中圆圈内的就是索引图像的索引表,下面的就是其对应RGB颜色表。
图中小圆圈处的索引号是5,对应RGB颜色的第5行,所以该处RGB颜色实际是0.2902 0.0627 0.0627
索引图像的作用就是体积小,方便传输,只需要把索引表传输过去,接收方用对应的RGB颜色表还原就行。
12、分类栅格图像单独提取(栅格计算器)
Spatial Analyst Tools-->Raster Calculator,
注意:布尔运算(&运算等)优先级比关系元算(>等)高,因此要带上括号,比如:("value">=0)&("value"<10)
13、图层透明度调整
在ArcMap中打开地图后,如果要将图层1设为透明,并将图层1覆盖于图层2上,则首先可将图层1拖动至图层2上。
然后,单击主菜单栏中的View菜单,依次选择ToolBar---effects,之后将弹出如下工具条:
单击Layer项下拉箭头,选择图层1,然后单击Adjust Transparency按钮,拖动滚动条,该图层1的透明度就随之改变。
14、处理大型数据时建议使用哪种数据格式?
个人地理数据库和 shapefile 的大小被限制在 2 千兆字节 (GB)。如果进程的输出超过 2 GB,就会出现错误。由于企业地理数据库和文件地理数据库没有大小限制,因此在处理超大型数据集时建议使用这两种地理数据库作为输出工作空间。有关企业地理数据库的数据加载策略的详细信息,请联系数据库管理员。请勿执行未经计划/未获批准的大型数据加载操作。
15、Arcpy(python语言)
1)默认参数设置用 ‘#’ 表示。
2)使用arcpy的空间分析模块时,出现licenses错误。
- 错误:Error 000824: The tool is not licensed
- 解决办法,添加下面一句:
# Check out any necessary licenses
arcpy.CheckOutExtension("spatial")
- 原因,尽管ArcGIS已经有了这个的license也添加了,但外部使用这个模块时必须先check。参考链接:http://blog.csdn.net/hj028/article/details/51933103
3)table输出csv示例:GDB file(treedn.gdb)有表trees,将其导出为成trees.csv.
import arcpy
import csv
wd = #<working directory>
table = wd+"/treedn.gdb/trees"
outfile = wd+"/treedn/trees.csv"
fields = arcpy.ListFields(table)
field_names = [field.name for field in fields]
with open(outfile,'wb') as f:
w = csv.writer(f)
w.writerow(field_names)
for row in arcpy.SearchCursor(table):
field_vals = [row.getValue(field.name) for field in fields]
w.writerow(field_vals)
del row
16、ArcGIS中导出成shp文件后的注意:
*.gdb里的区图层是OID作为区标识,序号以1开始
导出shp后区图层是FID作为区标识,序号以0开始
17、属性计算器Field Calculator用python做数值分割:
对于复杂一点需要分段的数据,可以勾选编辑框上方Show Codeblock,会出现一个Pre-Logic Script Code文本,在里面输入函数,比如:
def fun(x):
if (x < 50):
return 1
elif (x >= 50 and x < 100):
return 2
elif (x >= 100 and x < 150):
return 3
elif (x >= 150 and x < 200):
return 4
elif (x >= 200 and x < 300):
return 5
elif (x >= 300):
return 6
然后下方文本框中输入fun(X),其中X是待分割属性,点击OK即可。
注:
1、在ArcGIS中编辑python代码中对空格要求很严格,子程序块需要统一space空格2格,否则无法计算。
2、X取值中不能存在NULL
18、Arcgis常用操作
- 投影:Data Management Tools—>Projected and Transformations-->Feature-->Project-->UTM 50N
- ArcGIS对图像生成网格:在ArcToolbos中,依次找到Data Management Tools—>Feature Class—>Create Fishnet,依次填写参考图层的格网范围,格网宽、高。cell按度来算:http://www.sunzx.net/archive/155.html
- ArcGIS区图层要素合并为一个:data management tools -> generalization-->dissolve
- 裁剪:Analysis Tools-->Extract-->clip
- 合并:Data Management Tools-->General-->Merge
- 插值:GeoStatistical Analyst Tools-->Interpolation
- 缓冲区:Analysis Tools-->Proximity-->Buffer
- 矢量元素的聚类显示:右键-->Classify button on the Symbology tab of the Layer Properties
- 点要素图层-->格网区图层-->栅格图像:
1、叠加分析:Analysis Tools-->Overlay-->Identity,输入图层是点图层,标识图层是区图层,生成新的点图层里面有区图层的对应ID
2、
2.1(点和区一一对应)区图层链接属性表,选择链接点图层里面的对应ID
2.2(点和区多对1)在线下统计,再生成新的表连接到区图层
3、矢量区图层转换为栅格图层:导出新区图层中的数据表并转换成csv格式,用R语言根据格网建立图像矩阵,再用配套代码生成ASCII文件正文内容,然后黏贴头文件以及修改配套*.pro文件,再将ASCII转换成栅格图像。(具体参看“ArcGIS中矢量区格网图层生成栅格图像”)
- 点要素插值-->栅格数据-->格网数据-->区图层
1、根据点标号,找到对应坐标,再生成点图层(WGS_1984),投影(UTM_50)得到点图层
2、点图层插值形成栅格数据
3、栅格数据格网化:用GRID区图层空间统计格网值,生成表。ArcToolBox下的Spatial Analyst Tools有区域分析工具Zonal-->ZonalStatisticsAsTable
4、用表链结格网区图层,格网属性连续值转为离散值
5、结果格网配色显示