GIS-Tips

融合Dissolve

合并相同字段属性的子流域
可以直接搜索工具dissolve,也可以在菜单栏Geoprocessing-dissolve

“WGS 1984”坐标系的墨卡托投影分度带(UTM ZONE)选择方法

(1) 北半球地区,选择最后字母为“N”的带;
(2) 根据公式,带数=(经度整数位/6)的整数部分+31。e.g. 黑河流域经度98-101,99/6+31=47

绘图

地图制图
将framework3.5的离线安装包anshingy.cab(在百度云盘GIS文件夹下),下载好后放在C盘内,然后以管理员身份运行命令行提示符(右键桌面左下角windows图标-WindowsPowershell(管理员)(A),输入如下代码即可:

dism /online /add-package /packagepath:C:\anshingy.cab

报错&出错

  • Merge合并后消失
  • 栅格文件无法建立属性表or 无法转换为shp

Error: Raster to Polygon tool generates Error 000863: Invalid GP data type
Cause
This error is generated when using a float raster as input in the Raster to Polygon tool. Integer rasters are required for the Raster to Polygon input.
Solution or Workaround
To use a float raster with this tool, the raster must be converted to an integer raster. Two of the ways to do this are described below.
Method 1
STEP 1. Convert the raster to an integer using the Int tool. Find the Int tool by navigating to the Spatial Analyst toolbox > Math > Int.
STEP 2. Convert the integer raster to a polygon using the Raster to Polygon tool.
Method 2
STEP 1. Use the Times tool to multiply the float raster by 100 to preserve the decimal values. (This multiplier can be modified to accommodate for additional decimal places.)
STEP 2. Convert the integer raster to a polygon using the Raster to Polygon tool.
STEP 3. Open the attribute table of the output polygon.
STEP 4. Use the Field Calculator to convert the grid value back to floating by dividing the value by 100 (or whatever value the raster was originally multiplied by).

问题描述:合并同一幅shp里的某些子区域,编辑-选中要合并的子区域-merge.但发现merge之后选中的子区域都不见了
解决方法:<法一>工具里check geometry
<法二>出现在这个问题的可能原因是受坐标系影响,所以新建一个ArcMap, 只加载需要处理的SHP(以避免其收到别的数据的坐标系影响),然后再进行merge操作

  • ERROR 010267: Syntax error in parsing grid expression.

解决方法:检查文件名中是否含有错误信息中的非法字符(比如路径或文件名是中文),修改掉

地理数据库

将数据存放在地理数据库可减少电脑的运算压力,相当于做了缓冲

降雨量插值

  • 泰森多边形:方法简单,但会出现多边形区域边界明显的现象,这种方法仅适用于地形起伏不大的流域。
  • 反距离权重法:以待估点的雨量值与样本点的距离为权重进行加权平均,权重大小与待估点和样本点的距离的平方成反比。插值结果会产生不连续性
  • 趋势面法:趋势面法是基于回归分析原理,运用最小二乘法拟合一个平滑曲面(一种
    光滑的数学曲面)来反应要素在空间分布上的变化规律,即将插值点与其相邻的若干个采样点进行拟合,得到一个多项式曲面。要素数据变化比较小的往往用低阶的趋势面逼近,要素数据起伏变化比较大的往往用高阶趋势面逼近。
  • 样条函数法:以最小曲率拟合控制点建立一个平滑曲面;然后依据这个曲面来估计每个定点的属性数值。
  • 克里金插值法:首先假定各采样点距离越近相关性就越大,反之,距离越远,相关性就越小,然后利用原始数据和半方差函数的结构性,对区域变化量的未知采样点进行无偏估值。由于采样点在空间上的变化是十分不规则的,因此克里金插值法将采样点在空间上连续变化的属性用随机表面函数来表示。
    克里金法的实质是预测未知样本点的位置属性,经验半变异函数可提供测量样本点之间的空间自相关信息,但也需要选择合适函数进行经验半变异函数的建模,所选模型不同,预测值也会不同。常用的拟合函数模型包括高斯模型、线性模型、球面模型和指数模型等,通常使用变程、基台和块金描述这些模型。

克里金插值法同样条方法之间的主要区别在于,样条法是一种确定性方法, 认为插值表面是一个未知函数;而克里金插值法假定插值表面是一个随机变量,并试图给出每一个插值点处的期望值。在实际应用中,样条函数法和克里金插值法通常会得出很接近的结果。

图片标定

Customrize-Toolbars-Georeferencing

将流域图片/pdf添加至GIS,并与SHP对比:去除图片除流域外的多余部分,以“添加数据”的形式添加该图片,打开Customrize-Toolbars-Georeferencing,标定时先选择图片上的某点,再选择SHP上对应的点进行link,多个link之后二者重叠,将图片导出为tif。用栅格计算器将tif进行选择(主要是为了剔除流域外部分),将得到的tif转为shp即可

标识工具

参考链接

Union合并工具注意事项

  • 待合并的面文件不可同名

e.g. 待合并的三个面文件分别为area.shp, area.shp, plant.shp, 则Union后结果为其中一个area.shp和plant.shp合并,并非想要的合并了三个面文件的结果

  1. Union几个面文件想要得到合并后的轮廓

步骤:
1.union选中需要合并的面
2.打开编辑,打开合并后的文件的属性表,选择将接缝处孔隙面并删除,保存,退出编辑
3.Polygon to line将上步骤得到的面文件转线,此时不仅有轮廓线,还有面与面相交处的线,打开编辑,将这些线选中并删除,只保留轮廓线即可

提取流域Watershed与Basin区别

watershed是已经根据地形特征划分了子流域的分水岭,basin得到的是一整个流域范围

加载进去的tif是灰色

双击打开属性表-Symblogy-选择“Classified"-加载后再选择回”Stretched“即可

栅格的属性表是灰色打不开

方法一:栅格转点后,原栅格数据信息会复制到点上(该方法占用内存较大)
方法二:修改原像元值
若构建属性表失败时提示不是整数,则可用栅格计算器里 int或者floor对原数据进行取整,如果还想要小数点后面的数的话,乘10或100之后取整
方法三:先转成ascii码,再由ascii码转成栅格

GIS中工具栏中放大缩小为灰

Reason: 地图比例尺锁定了。
Solution: 在地图工程右键–属性—dataFrame把fix scale变成auto就OK了。

点数据坐标转换:度分秒→十进制

设Excel中A1单元格的坐标格式为度分秒,要将度分秒格式转化成十进制度,在B1中输入

=LEFT(A1, FIND(“°”, A1)-1) + MID(A1, FIND(“°”, A1)+1, FIND(“′”, A1)-FIND(“°”, A1)-1)/60 + MID(A1, FIND(“′”, A1)+1, FIND(“″”, A1)-FIND(“′”, A1)-1)/3600

设Excel中A1单元格的坐标格式为度分,要将度分格式转化成十进制度,在B1中输入

=LEFT(A1, FIND(“°”, A1)-1) + MID(A1, FIND(“°”, A1)+1, FIND(“′”, A1)-FIND(“°”, A1)-1)/60

在ArcMap中将点图层的属性赋给面图层

用arctoolbox anaglist ----> overlay ------->sptatial join 工具,可以把点属性赋值到面上,即可解决。

应用: 如想要判断流域内有哪些网格点
已知:
a) 有200*34=6800个格点,覆盖流域范围,从西南角编号为1,向北依次1,2,…,200;第二列200,201,…(从南向北)…,400,一直到矩形东北角编号为6800。所以格点属性表有三列:经度、维度、编号
b) 流域shp
方法:
a) 用Analysis Tool-Overlay-Spatial join 工具,将格点shp设为target features,流域设为joined features, 得到joined.shp
b) 打开joined.shp属性表,选择有流域属性的点并导出shp即可

添加XY点数据

<方法一>

1)事先将经纬度数据转换成十进制度
2)将表格保存为.xls格式, 要包括X、Y、ID列
3)查看需要将点添加进去的源数据的地理坐标系(此步可省,省略的结果是后期得先添加源数据)
4)打开空的ArcMap,右击图层,选择属性→坐标系,定义一个与源数据相同的地理坐标系;由于导入的多为经纬度数据,给数据框设置单位为度(或者度分秒皆可);
5)文件→添加数据→添加XY数据,选对表格和XY字段,点击确定。
6)将点数据导出成shp格式;
7)添加入源数据,即可正常使用了。

注意:不要直接添加XY,然后定义投影为投影坐标系,要先定义地理坐标系,才能保证点和原流域出现在同一位置

<方法二>(用于脚本编写)

Data Management Tools-Layers and Table Views-Make XY Event Layer
(* xls里面必须写ID,否则编写的脚本会报错 *)

批量从excle添加点的shp

<方法一>模型构建器迭代
<方法二>数据管理工具-图层和表视图-右键“创建XY事件图层”-批处理

additional
用matlab生成点坐标:

%% 生成25°N~40°N, 66°E ~105°E的240000个X和Y坐标(0.05°/网格)
%B = repmat(A,M,N)  B的维度为[size(A,1)*M, size(A,2)*N]
%如果写成repmat(A,N),那么它等价于repmat(A,N,N)或者repmat(A,[N,N])%Y:
Array_b=linspace(25.025,39.975,300);
A=repmat(Array_b,800,1);
Y=reshape(A,240000,1);
%X:
Array_b1=linspace(66.025,105.975,800);
A1=repmat(Array_b1,1,300);
X=reshape(A1,240000,1);

其他地理坐标系与WGS_1984转换

打开arcmap设置坐标为目标坐标系,加载需要转换为WGS_1984的数据,然后导出,导出时坐标系选择数据框

坡度slope的z值设置

ArcGIS slope计算Z-factor

创建泰森多边形

模型构建器Model Builder

  • 将站点加载到GIS:Make XY Event Layer
  • 导出点图层为shp:Copy Features
  • 构建泰森多边形:CreateThiessenPolygons

关联Join后显示NULL

(* 只有xls可以被关联!xlsx会报错 *)

  • 解决方法<一>:
    查看excel,若有些数值的单元格左上角有个提醒标识,可以在一个空单元格中输入数据1,然后复制,然后选中有问题的单元格,右键->选择性粘贴,选中“乘”
  • 解决方法<二>:
    查看excel,将数字格式全部调整为文本

添加&编辑属性

  • add field
  • 打开编辑器开始编辑,选择该要素,邮右键选择“属性”进行编辑 然后保存即可

添加格点

创建csv导入

  • 步骤:1. 新建csv,写入列标题分别为Longitude、Latitude和编号(或其他任意属性)的三列数据 2.在GIS中添加数据,选择该csv,右键display XY data 3. 将event导出为shp
  • 如果是已经投影过投影坐标系的shp的话,生成的fishnet可能无法与其重叠,则需要将fishnet先定义与shp一致的地理坐标系,再投影为与shp一致的投影坐标系

绘制fishnet

  • 步骤:1. 确定流域经纬度范围,fishnet输入框的Top, Bottom, Left, Right为大于流域边界的整数经纬度 2.输入width和height, number of rows, number of columns 3. 最下方选择Polygon
  • 如果是已经投影过投影坐标系的shp的话,生成的fishnet可能无法与其重叠,则需要将fishnet先定义与shp一致的地理坐标系,再投影为与shp一致的投影坐标系
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值