可以使用工具 3D Analyst——create TIN——create TIN form features 生成栅格图,再用 3D Analyst——convert——TIN to raster 转换一下生成GRID
按照你的方法,我可以生成tin,然后转换成栅格,attitude字段我选了elevation,生成了全黑的,是不是因为我的shp文件里的高程那个字段不是 elevation?(我shp文件自己建的高程字段是“gaocheng”)
你搞反了,应是先利用你的等高线(矢量)生成tin ,然后再由tin生成DEM。(还没听说过有矢量直接转化为栅格后是DEM的?
因为CAD格式不能生成tin,所以你还需要将CAD数据转换成shipfile 或 database 格式。
vb编程论坛转换方法:
你在CAD数据处右键》 data 》 export data 》选择好导出的地方,导出的格式(shipfile 和 database 格式都行)然后确定,
再用shipfile 和 database 格式数据建立tin
创建tin方法:
1、首先选择功能:Tools(顶部)——Extensions (可将里面的全部打钩)
2、在上面空白处右键,然后选择3D Analysis ,出现3D Analysis 工具条
3、单击出现的工具条的3D Analysis 》 create/modify Tin 》create Tin from features
4、将左边的数据选择你的等高线,右边的属性选择你的建立tin的属性,下面写好输出tin 的位置。
到此tin就建立好了。
5、单击出现的工具条的3D Analysis 》 convert 》 tin to raster
选好好需要的,点OK。到这里才是建立了DEM。
1、启动ArcCatalog,新建数据库data.mdb,在空白处右击,导入,四个字段分别为Code(设为主健)、X、Y、Z,保存为表Point。
2、启动ArcMap,Tools→Add XY Data,在“Choose a table”中添加数据库data.mdb 中的表Point,在“X Field”和“Y Field”中分别选择字段X、Y,Edit→Select,选择/Projected CoordinateSystems→World→Mercator (world).prj,一路OK 后,离散点已被展绘到Point Events 图层中。
3、Tools→Extensions,把3D Analyst 打上勾,Close。右击工具栏,把3D Analyst 打上勾。
4、3D Analyst→Create→Modify TIN→Create TIN From Features,把图层Point Events 打上勾,在“Height Source”中选择字段Z,在“Output TIN”中输入TIN 的保存路径,OK 后生成了TIN。
5、3D Analyst→Surface Analyst→Contour,在“Contour Interval”中输入等高距
10,在“OutputTIN”中输入Contour 的保存路径,OK 后便绘制好了等值线。
其中,生成了TIN后,可以利用3D Analyst模块下的convert-TIN to Raster将TIN 转换为栅格图。再利用ArcMap中栅格分析功能对栅格图处理
DWG生成DEM??
2009-10-12 15:00:21|??分类:?默认分类|字号?订阅
由DWG地形图生成
1.由DWG地形图生成DEM
1.1从DWG中提取高程点数据
1.1.1切割DWG地形图
数据量太大,先切割再进行其他操作。具体步骤为:
用CAD2005把上、下两幅图转换成2000格式(CASS是CAD2002配套产品)-用CASS打开上、上两幅图(CAD中没有SAVET保存选择多边形内图形功能)-“插入”-“块”-名称中打开红线研究区-去掉“在屏幕上指定点”(X,Y,Z全是0)-确定后就可以显示红线研究区-用矩形圈出研究区-“SAVET命令”-输入比例尺(10 000)-多边形保存1-选中刚画的矩形-OK。
1.1.2合并上下两幅图
CAD中有一些命令,qselect可以选择满足条件的数据,就可以选择一层数据,wblock 可以制作块保存选择的数据,具体步骤为:
打开裁剪后的图上-“插入”-“块”-打开裁剪后的图下-去掉“在屏幕上指定点”(X,Y,Z 全是0)-选上左下角的“分解”(如果不分解,整个下图就是一块,选中一条线就把图下全部选中了,删除一条线就把整个删除了,当然现在不选,可以用CAD分解命令分解开)-确定后两幅图就拼接好了-然后打开红线-再次整体裁剪两幅合并的图-打开图层管理-只显示等高线和高程数据图层-另存为CAD图。
1.1.3补充高程点数据
由于等高线质量太差了-断线或缺少线,没有高程属性等,不用等高线生成DEM,用高程点数据生成D
EM)。具体步骤为:
设置文字样式通过“格式”-“文字样式”-设置和原来的高程文字相同样式-补点用TEXT 命令-用鼠标确定文字位置-确定角度为0-输入高程数据-复制高程数据文字-沿着等高线粘贴该高程数据即可(以后用回车或空格完成粘贴)-换等高线时粘上错误高程后双击文字可改-然后再复制新文字
1.1.4获得高程点数据表
原先已有高程点是由“高程点和高程数据注记文字”组成的,高程点提供了准确的位置(X,Y)而没有Z属性,但文字注记提供了高程值而位置是不准的,有一个解决办法可以得到准确位置的准确高程值,先得到所有点的位置数据表(包含X,Y),再得到高程数据表(包含X,Y,H),再编程实现点和高程值的匹配,具体实现方法为:点的位置数据和高程数据分别保存在两个数组中,从第一个点开始在高程数据中距离与他小于一个定值的高程文字,这个文字的内容就是这个点的高程,到后马上去掉这个高程文字数据,减小以后的寻负担(在VC中可以用CUintArray作为数据数组,有删除函数,采用GetSize()得到要寻的数据个数;当然还有一种方法是,现在已经有EXCEL数据,转换成ACESS数据库,然后在VC中读取数据库,一个在VC中好实现读取ACESS数据库,再一个是不是速度比VC中读取EXCEL文件快呢具体实现时在点数据表中新那一个字段,保存高程,在另一个高程表中读取XY值比较距离,
打到高程就把高程数值更新到点数据表中的新字段中,当然到一个就把高程表那一条记录删除,当然到一条记录最好是再接着,要是到两个就说明那附近有问题,一个点和两个高程数据接近,或者说没有到任何一个点,是不是距离设置太小了。可以通过VC,VB访问数据库,当然也可以在ACESS的VBA中使用),开始没有做点和高程的匹配,只是把高程数据文字的位置当作高程点的坐标了,在CAD图上看了一下,一般高程点和高程文字注记的距离为30多米。不过,后来把研究区分解成四部分在Excel中根据阀值和最小距离实现了坐标和调和的匹配,在测绘通报和其他测绘方面的期刊上有这样的论文。在这里提取文字信息也是在明经CAD论坛中到VBA的代码的。获得高程点数据的具体步骤为:
“工程”-“宏”-“加载工程”-加载“提取文字信息”VBA代码-到宏中的VBA编辑器运行就可以了(也许需要添加引用EXCEL),结果保存在C盘下的EXCEL文件xyz中(他的X和Y和CAD图上是反的)。
输出距离小于100米内的点个数,这样避免下面这样的情况,两个都可以。设置上限100米,这样可以分析是不是对了
.235
125.
1.2.根据高程点数据生成DEM
1.2.1生成点SHP文件
ArcMap的工具添加XY数据至少可以打开ACCESS数据表和TXT文件,ACCESS文件数据表直接打开没问题,TXT文件的格式为:第一行为属性字段,如(ID,X,Y,Z),然后从第二行开始就是数据了,如(1,12.45,23.4,234.5\n2,45.23,45.5,)。具体步骤为:通过ACEESS创建数据表,新建数据库-附加数据库-打开CEXCEL高程xyz数据文件-根据提示可以生成mdf数据表-运行ArcMap-“工具”-“添加XY数据”-选择刚生成的数据表-X,Y字段选择位置-OK-然后保存为shp文件,在图层列表选择刚打开的点层-数据-导出为SHP 格式-到此点SHP文件创建完毕OK。
1.2.2生成TIN数据和栅格
有的机器上装的ArcMap中的3D分析可以用,但是我这台机器上装的不能用,不过,我发现我的机器上ArcScene是好使的,幸亏能用,呵呵。那么具步骤就是:运行ArcScene-调出3D分析工具(“工具”-“扩展”中可,也可右键工具栏打开3D分析工具,当然还可“工具”-“定制”)-3D分析工具中创建/修改TIM-从要素生成TIN弹出对话框-打开高程点SHP层-不用修改了其他的(高度源就是高程字段)-确定就OK了。
转换到栅格的方法:3D分析-转换-TIN转换到栅格OK了。
从网上gissky上看到的“利用等高线生成DEM,最好还要有高程点数据,生成方法最好不要用构TIN的方法,要用ARCTOOLBOX-空间分析-内插-TOPO TO RASTER 命令,效果要好得多。此命令是专门用于DEM生成的内插方法”,做了第一个插值的,效果好像是好点,山顶没有构成TIN的图尖锐。
1.2.3DEM数据的显示设置
如果觉得高程差别太小或者太大,起伏不明显或玄虚太大,设置基高也许会帮助你解决视觉上的难题,按以下步骤做:
右键图层名-属性-基表面高度(倒数第2个)-选中“从表面为图层获得高度(这个栅格图像起始没选中,tin是选中的)”-Z单位转换自定义后面的数字就是转换因子,数字越大,高程差别越明显。
栅格起始是黑白来区分高度,tin是用起伏来表示高低,可以设置由高到低用不同的颜表示,两种数据设置有点不一样的。具体步骤是:专业的3S站 3s8
tin的设置:右键打开属性-符号-显示下面的“添加”添加渲染-可以选第5个“面高
程用颜梯度进行渲染”-添加,取消关闭对话框-然后去掉Faces前的勾-然后就可以在“颜梯度”中选择自己喜欢的颜梯度了,还可以在右边设置分级数。
栅格可以直接点击图层上的颜,设置梯度颜,也可以打开属性和tin一样在符号中设置。
1.2.4DEM与遥感影像的叠加显示
在ArcScene中打开DEM,再加载影像时,一定要注意影像边界不能超过DEM,而且影像必须是GRID栅格格式,一个办法是利用ArcToolbox中的栅格剪裁工具根据DEM边界裁剪,然后在属性中指定基调文件为DEM就可以了。
1.由DWG地形图生成DEM
1.1从DWG中提取高程点数据
1.1.1切割DWG地形图
数据量太大,先切割再进行其他操作。具体步骤为:
用CAD2005把上、下两幅图转换成2000格式(CASS是CAD2002配套产品)-用CASS打开上、上两幅图(CAD中没有SAVET保存选择多边形内图形功能)-“插入”-“块”-名称中打开红线研究区-去掉“在屏幕上指定点”(X,Y,Z全是0)-确定后就可以显示红线研究区-用矩形圈出研究区-“SAVET命令”-输入比例尺(10 000)-多边形保存1-选中刚画的矩形-OK。
1.1.2合并上下两幅图
CAD中有一些命令,qselect可以选择满足条件的数据,就可以选择一层数据,wblock可以制作块保存选择的数据,具体步骤为:
打开裁剪后的图上-“插入”-“块”-打开裁剪后的图下-去掉“在屏幕上指定点”(X,Y,Z全是0)-选上左下角的“分解”(如果不分解,整个下图就是一块,选中一条线就把图下全部选中了,删除一条线就把整个删除了,当然现在不选,可以用CAD分解命令分解开)-确定后两幅图就拼接好了-然后打开红线-再次整体裁剪两幅合并的图-打开图层管理-只显示等高线和高程数据图层-另存为CAD图。
1.1.3补充高程点数据
由于等高线质量太差了-断线或缺少线,没有高程属性等,不用等高线生成DEM,用高程点数据生成DEM)。具体步骤为:
设置文字样式通过“格式”-“文字样式”-设置和原来的高程文字相同样式-补点用TEXT命令-用鼠标确定文字位置-确定角度为0-输入高程数据-复制高程数据文字-沿着等高线粘贴该高程数据即可(以后用回车或空格完成粘贴)-换等高线时粘上错误高程后双击文字可改-然后再复制新文字
1.1.4获得高程点数据表
原先已有高程点是由“高程点和高程数据注记文字”组成的,高程点提供了准确的位置(X,Y)而没有Z
属性,但文字注记提供了高程值而位置是不准的,有一个解决办法可以得到准确位置的准确高程值,先得到所有点的位置数据表(包含X,Y),再得到高程数据表(包含X,Y,H),再编程实现点和高程值的匹配,具体实现方法为:点的位置数据和高程数据分别保存在两个数组中,从第一个点开始在高程数据中距离与他小于一个定值的高程文字,这个文字的内容就是这个点的高程,到后马上去掉这个高程文字数据,减小以后的寻负担(在VC中可以用CUintArray作为数据数组,有删除函数,采用GetSize()得到要寻的数据个数;当然还有一种方法是,现在已经有EXCEL数据,转换成ACESS数据库,然后在VC中读取数据库,一个在VC中好实现读取ACESS数据库,再一个是不是速度比VC中读取EXCEL文件快呢?具体实现时在点数据表中新那一个字段,保存高程,在另一个高程表中读取XY值比较距离,打到高程就把高程数值更新到点数据表中的新字段中,当然到一个就把高程表那一条记录删除,当然到一条记录最好是再接着,要是到两个就说明那附近有问题,一个点和两个高程数据接近,或者说没有到任何一个点,是不是距离设置太小了。可以通过VC,VB访问数据库,当然也可以在ACESS的VBA中使用),开始没有做点和高程的匹配,只是把高程数据文字的位置当作高程点的坐标了,在CAD图上看了一下,一般高程点和高程文字注记的距离为30多米。不过,后来把研究区分解成四部分在Excel中根据阀值和最小距离实现了坐标和调和的匹配,在测绘通报和其他测绘方面的期刊上有这样的论文。在这里提取文字信息也是在明经CAD论坛中到VBA的代码的。获得高程点数据的具体步骤为:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论