找回密码
 注册
Simdroid-非首页
查看: 235|回复: 12

[前后处理] 【原创】用ArcGIS获取建模原始数据的方法

[复制链接]
发表于 2011-10-8 19:32:29 | 显示全部楼层 |阅读模式 来自 甘肃兰州
陈育民博士书中关于FLAC3D建模的例5-2是郑文棠博士编写的土岩双层建模的FISH程序,例中郑博士的原始数据是通过Surfer软件获得的,很多读者对用Surfer怎么获取这一系列数据的过程不是很清楚,笔者没有用过Surfer,同样也不清楚,因此琢磨出一条用ArcGIS插值生成GRID图形文件的方式来获取网格数据。
笔者是学地质工程的,大多数时候拿到的原始资料就是一张测绘过的CAD地形图,详细步骤如下:
1. 打开工作区的CAD图件,将除了等高线所在图层和0图层以外的其他图层删除(也可以不用删,只不过在MapGIS中选择不转出的图层数量比较多罢了),然后将其另存为AutoCAD 2000dxf图件,注意此处一定要存为这个格式,其他格式貌似不能用ArcGIS打开。(此时别急着关AutoCAD,一会还有用)
  
2. 打开ArcMAP,用 键添加名为Drawing1dxf文件,在添加的时候注意当找到Drawing1文件后,双击打开,里面还有几种不同的文件,对于等高线我们就只选择Polyline这种多段线的形式就可以了。如图所示:
  右键点击文件名Drawing1.dxf Polyline,选择Open Attribute Table属性表,可以看到每一条线的属性,由于等高线的高程是原始CAD图形中往往就存在的,所以Elevation一项就有明确的数据显示,作为示例笔者也是事先在CAD中对每一条线赋上了多段线的标高值。
3. 打开Toolbox, 按照Spatial Analyst Tools——Interpolation——Topo to Raster的路径打开,在“Input feature data” 对话框里下拉选择文件Drawing1.dxf Polyline,此处要注意的是一定要把Field栏中的属性名称下拉改为“Elevation ,因为是做等高线的插值。在最下面的“Output cell size”中填入输出的网格大小,此处可以随便填,在下一步转换为GRID文件输出网格大小的时候才需要输入你设计的网格大小。步骤5如图所示:
生成图形的效果:
4. 对生成的lineraster图形文件点击右键,选择“Data”下级菜单中的“Export Data”,在Cell Size中填入X Y方向的网格大小,在Format栏中下拉选择“GRID”格式,选择存储路径和文件名确定,再一次强调注意存储的路径一定不要出现中文,尤其不要把文件放在桌面上。如图所示:
网格大小
文件格式
生成的格网文件如图所示:
5. 本例共生成了81列,49行,可以通过该图层的Properties查看
本例中最左上角的网格中心的坐标大概是(2801050),那么在CAD中先按这个坐标画出一个点,然后用CAD的阵列功能,向X的正方向阵列81列,向Y的负方向阵列49行,行列偏移为负,正20,然后将这个点阵文件存为AutoCAD2000dxf,还是用步骤2中添加等高线的方法把这个点阵文件Drawing2添加进来,只不过在选择型文件的时候注意选择Point,如图所示:
可以看到大概在每个网格的中心都有了一个点,这些点就是建模所需的点,现在来获取这些点的三维坐标。
6. Toolbox中按照Spatial Analyst Tools——Extraction——Extract values to points的路径打开,在Input point feature一栏中下拉选择点阵Drawing 2.dxf Point文件,在Input raster一栏中下拉选择黑白的linegridGRID图形文件,指定输出路径后点击OK确定,会生成一个和Drawing 2.dxf Point图层一样的点阵图层,打开这个点阵图层的属性表可以看到属性表的最后一列多出了一项RASTERVALUE的属性,这些值就是每个点所对应的linegrid的底图上相应位置的值,也就是这些点的高程值,如图所示:
7. 接下来要将每个点的X Y坐标添加到属性表中再输出就可以得到每个点的三维坐标了。在Toolbox中按照Data Management Tools——Features——Add XY Coordinates的路径打开对话框,选择刚才生成的含有RASTERVALUE属性的点文件,点击OK确定后再打开这个点文件的属性表,可以看到在RASTERVALUE后面两列中出现了POINT_XPOINT_Y两个属性列,当然这两列的意思就不用我多说了哈。如图:
8. 点击属性表的“Option”按钮,选择Export,这个路径就可以随意选择了,确定后将会输出格式为dbf的属性表。在相应位置找到这个dbf的文件,用Excel打开,就可以对这些数据进行进一步的编辑和处理了。
再啰嗦几句,打开dbf表格后首要的处理当然是删除那些没用的属性列了,然后将RASTERVALUE这一列放到POINT_Y后面去。从表中XY数据可以看出,数据是按照从上到下,从左至右的顺序排列的,也就是从上到下将每一列的三维坐标列出后再列出第二列的,直到最后一列。而郑博士程序的原始数据Surfer_Data是按照从最下面一列的最左边往最右边排列数据的,所以要用郑博士的程序的话应该对这个dbf全表按照Y值的升序进行排列;另外郑博士的第二层基岩的数据是直接将表层的标高减3得到的,这个过程在Excel里面当然也很好操作,最后你可以新建一个txt文档,将这几列数据复制粘贴进去,也可以在Excel里面另存为的时候将“保存类型”选择为“文本文件(制表符分隔)”也行。当然,按照郑博士的做法,你只要把这个文本文件的后缀名改成dat就可以了。
最后奉上本文例中的FLAC3D模型,对郑博士程序仅改动了几个参数,如下:
COMMAND文件中的改动:
Col_Num=81
Row_Num=49
dx_size=20
dy_size=20
xor=280
yor=90
03_Gen_FlacModel文件中的改动:
     zr1=table(j+n_zon_row+1,x1)
     zr2=table(j+n_zon_row+2,x1)
     zr3=table(j+n_zon_row+2,x2)
     zr4=table(j+n_zon_row+1,x2)
模型如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2011-10-8 19:38:43 | 显示全部楼层 来自 甘肃兰州
Simdroid开发平台
本帖最后由 jswoaini 于 2011-10-8 19:49 编辑

用word看起来可能更方便






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2011-10-9 11:27:45 | 显示全部楼层 来自 云南昆明
谢谢无私的分享
回复 不支持

使用道具 举报

发表于 2011-10-9 13:16:10 | 显示全部楼层 来自 辽宁铁岭
谢谢无私的分享,别开蹊径
回复 不支持

使用道具 举报

发表于 2012-1-4 15:08:23 | 显示全部楼层 来自 湖北武汉
好东西,支持原创!学习
回复 不支持

使用道具 举报

发表于 2012-2-13 11:03:49 | 显示全部楼层 来自 湖北武汉
请问楼主,第5步中“本例中最左上角的网格中心的坐标大概是(280,1050)”,这个坐标是怎么找到的?
回复 不支持

使用道具 举报

 楼主| 发表于 2012-2-23 09:25:45 | 显示全部楼层 来自 北京
z1111w 发表于 2012-2-13 11:03
请问楼主,第5步中“本例中最左上角的网格中心的坐标大概是(280,1050)”,这个坐标是怎么找到的? ...

你把鼠标放在大概是网格中心的位置,arcmap的右下角就会出现坐标嘛
回复 不支持

使用道具 举报

发表于 2012-3-31 19:56:57 | 显示全部楼层 来自 重庆沙坪坝区
ARCGIS怎么用啊?很难用啊。请问各大侠,在哪里找ARCGIS的资料啊?
回复 不支持

使用道具 举报

发表于 2012-4-4 18:04:33 | 显示全部楼层 来自 甘肃兰州
太棒了,楼主真是融会贯通啊,原来这样也可以。太感谢了。呵呵,希望以后能继续原创,继续创新。顶
回复 不支持

使用道具 举报

发表于 2012-8-2 17:14:48 | 显示全部楼层 来自 陕西西安
佩服的五体投地!!!
回复 不支持

使用道具 举报

发表于 2013-5-17 10:58:42 | 显示全部楼层 来自 合肥工业大学
支持楼主!支持原创!佩服佩服!
回复 不支持

使用道具 举报

发表于 2014-8-23 21:02:19 | 显示全部楼层 来自 重庆沙坪坝区
谢谢你的辛劳成果!
回复 不支持

使用道具 举报

发表于 2014-8-24 07:52:08 | 显示全部楼层 来自 山东济南
这个得学习学习
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-24 02:21 , Processed in 0.042635 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表