转:如何求出grid图像每个cell对应的x,y坐标?

现有一个grid文件,现有三个字段,id,value,count。新建二个字段x,y,如何求出每个cell的坐标值,并输入到grid的属性表中的x,y字段中。 
另外,如何将grid转为一个一个cell小格的polygon feature,我在空间分析模块下试了一下,转出来的polygon不是一个一个cell小格图形,它把value值相同并相邻的cell合成一个polygon,并且在grid网格的边缘形成了一些三角形polygon。这是何故,应该如何做?
yulu11
 
帖子: 29
注册: 2004-07-13 17:05

帖子由 goodman » 2004-07-27 9:21

转换本身就是将相同的CellValue转换成Polygon。可以利用这个特性很容易的把grid转换成以cell小格的polygon。 
关键是生成每个CellValue都不相同的grid。这个可以利用内部参数在Raster Calculator中实现。输入一下命令: 
CellNum = ($$ROWMAP * $$NCOLS) + ($$COLMAP + 1) 
这样利用cell的行列就生成了各不相同的cellvalue。然后利用转换就可以得到Polygon了。 
有了Polygon以后xy坐标就很容易求了,Polygon的中心或者左上角等都可以算出。
山不在高,有仙则明;水不在深,有龙则灵。
头像
goodman
 
帖子: 422
注册: 2001-07-13 12:00

帖子由 yulu11 » 2004-08-03 9:32

我运行上面的命令,可是arcgis说命令出错,您能讲得详细一些吗?比如说我有一个grid文件lu,我怎样具体输入正确的命令表达式?
yulu11
 
帖子: 29
注册: 2004-07-13 17:05

帖子由 goodman » 2004-08-03 9:44

命令本身没有任何问题,应该是你没有设定参数。 
在option中设定范围和cell的大小,当然是和lu一样即可。 
另外,如果还有问题的话,看一看默认的临时目录中是否有汉字,有时候也有影响。 
注意以上几点,应该没有问题的。
山不在高,有仙则明;水不在深,有龙则灵。
头像
goodman
 
帖子: 422
注册: 2001-07-13 12:00

帖子由 yulu11 » 2004-08-03 10:19

谢谢,我已经生成了,但是我在help中看不到和命令有关的内容,请问在那里能找到?
yulu11
 
帖子: 29
注册: 2004-07-13 17:05

帖子由 CAFECAT » 2004-08-04 8:22

谢谢,学到新东西了
头像
CAFECAT
 
帖子: 84
注册: 2003-05-07 23:10

帖子由 eger » 2004-08-31 19:56

根据Grid的左上角坐标和栅格大小,利用Generate下的Grid labels,同时生成网格和中心点。 
斑竹说的方法,当然也可以。 
能解释一下:$$ROWMAP、 $$NCOLS以及$$COLMAP代表什么吗?
eger
 
帖子: 64
注册: 2002-06-10 10:55

帖子由 albert99 » 2005-01-21 10:59

Thank u:)具体如何操作。用什么命令?
albert99
 
帖子: 3
注册: 2005-01-21 10:14

帖子由 yulu11 » 2005-01-25 16:20

其实还有更简单的方法,在空间分析模块下将grid转成feature,这时注意要把grid转成点feature。生成的点将出现在原来栅格的中心,然后通过help里面vbsript将点的坐标算出来,中心点的坐标有了,其他四个角自然也就很好算出来了。如果是想将grid转为一个一个cell小格的polygon feature,那么就把生成的点feature转成grid,选择的字段为id.
yulu11
 
帖子: 29
注册: 2004-07-13 17:05

帖子由 leung » 2005-01-30 13:26

arcview中grid转ploygon的extension多得很。 
只要本身的grid带有经纬度坐标,那ploygon自然也带有坐标的,也很简单。
leung
 
帖子: 13
注册: 2004-04-12 12:00

帖子由 man » 2005-02-27 15:16

leung 写道:arcview中grid转ploygon的extension多得很。
只要本身的grid带有经纬度坐标,那ploygon自然也带有坐标的,也很简单。


老大,给个extension如何?
“余少学书,不成;学剑,又不成;愤而捐书弃剑,不学无术,竟又不成。呜呼哀哉!”
man
 
帖子: 142
注册: 2002-09-29 17:37

帖子由 cgh » 2005-05-02 10:10

goodman 写道:转换本身就是将相同的CellValue转换成Polygon。可以利用这个特性很容易的把grid转换成以cell小格的polygon。
关键是生成每个CellValue都不相同的grid。这个可以利用内部参数在Raster Calculator中实现。输入一下命令:
CellNum = ($$ROWMAP * $$NCOLS) + ($$COLMAP + 1)
这样利用cell的行列就生成了各不相同的cellvalue。然后利用转换就可以得到Polygon了。
有了Polygon以后xy坐标就很容易求了,Polygon的中心或者左上角等都可以算出。

但是如何将feature的节点坐标x和y作为两个字段加入到属性表呢?
______________ 
*-------------** 
{ cgh } *
cgh
 
帖子: 40
注册: 2002-11-27 22:31

帖子由 yulu11 » 2005-05-07 10:38

生成单个grid小格,并将属性加入的全过程(以房地产为例): 
1利用房地产(点要素,内有房产价格字段)数据,采用arcgis desktop的空间分析模块中的任一空间插值方法插值出一个grid表面。注意:首先设定option里面的参数 
2打开Raster Calculator(栅格计算器),输入命令: 
CellNum = ($$ROWMAP * $$NCOLS) + ($$COLMAP + 1) 
其中cellnum是新生成grid的名称,如果要理解$$ROWMAP $$NCOLS $$COLMAP这些参数,首先要理解什么是矩阵,栅格文件的特点就是像一个矩阵,一个一个格子排列整齐规则,非常便于数学计算,这也就是raster非常流行的原因之一了。哈,闲话少说,言规正传!原来插值生成的grid是一个矩阵X[M][N],$$NCOLS就是矩阵的N维数,$$ROWMAP是X[M], $$COLMAP是X[N],假设M和N都是5,那么计算过程如下: 
0×5+0+1=1 第一行第一个单元格里面的新值(计算机计算的起点都是0,这一点学过c语言的人应该明白) 
0×5+1+1=2 第一行第一个单元格里面的新值 
…… 
1×5+0+1=6第二行第一个单元格里面的新值 
1×5+1+1=7第二行第二个单元格里面的新值 
…… 
以此类推我们可以得到所有单元格的新值,那么实际上我们就是把原来的grid转换为一个每个单元(cell)值都不相同的grid,这样就可以生成一个一个小格的polygon要素(矢量)。具体实现很简单,空间模块菜单里面有一个将raster转换为vector的菜单,注意不要勾选简化边界,否则生成的矢量图形的边界会出现三角形。 
3这样我们就得到了一个一块块小格的矢量图形,但是我们发现原来的属性数据丢失了,即原来空间插值所得到的value没有了,这怎么办呢?我们可以采用空间join的方法,把原来的grid里面的value重新得到。具体操作过程如下,首先把原来的grid转换为点要素(矢量),这样每个点就获取了原grid每个格子上的值。第二步,在新生成的矢量图层(polygon)点击右键,在文本菜单中找到join and relate,打开join对话框,在第一个选项中,选择基于位置的join即空间join,在第二个选项中选择第二个,join的图层选择刚才生成的那个点图层,然后在最下面的指定新生成的文件名和路径。这样我们就得到了即有原来的值,又被分成一个一个小格的矢量图形(每个格子和原来的grid一一对应)。 
4如果我们还想把每个格子的中心点坐标加入其中的话,那么就更简单了。在最终得到的那个矢量图层中新建一个类型为double的字段,在字段名上点击右键,选择caculate value,打开字段计算器对话框,调入help中自带计算质心的vbsript,然后点击确定,即可得到每个格子中心点的坐标。每个小格四个角的坐标获取方法和上述一样。 
arcgis desktop中空间分析模块生成的grid除了id,value,count三个字段以外,不能添加任何其他字段,所以采用上述方法加入每个格子的其他字段。当然这只是一个折衷的办法,生成的矢量图形分类上色是很困难的,因为一般我们生成的格子都上万个,arcgis对矢量分类上色对数量是有限制的。最好的方法是使用arcgis workstation,那里生成的grid可以添加多个字段,但本人没用过,不清楚。有使用过的人可否给指点一下!!
yulu11
 
帖子: 29
注册: 2004-07-13 17:05

帖子由 四十四 » 2005-05-07 19:26

很好啊! 
学到了挺多的
四十四
 
帖子: 2
注册: 2005-04-27 13:00

帖子由 chnanning » 2005-11-09 9:28

这样做出来的文件不能用栅格计算器进行叠加,请问怎么办?
chnanning
 
帖子: 1
注册: 2005-11-02 14:22
 

原文:http://www.cngis.org/bbs/viewtopic.php?t=6329 

转载于:https://www.cnblogs.com/gxiang/archive/2010/01/25/1656030.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值