ArcGIS高程Z值的去除方法

在ArcGIS中,我们常用的几何类型有点、线、面、体(体,在涉及三维的情况下使用),但在这之外,可能会遇到带ZM的类型,如图所示,面ZM,它与面类似,但比面多两个字段。

在编辑中查看草图属性可看到Z值和M值。Z值是用来存储高程属性信息的,M值是用来存储其他属性信息的,如温度、浓度等。这里的数据是CAD文件转过来的,所有有高程值,但没有M值。

从下面的WKT格式中可以看出几何点可能的类型有Point、PointZ、PointM、PointZM四种格式,Polyline、Polygon也是类似的。

<Point Text> := EMPTY
|    <Point>
| Z  <PointZ>
| M  <PointM>
| ZM <PointZM>

<Point> :=  <x>  <y>
<x> := double precision literal
<y> := double precision literal

<PointZ> :=  <x>  <y>  <z>
<x> := double precision literal
<y> := double precision literal
<z> := double precision literal

<PointM> :=  <x>  <y>  <m>
<x> := double precision literal
<y> := double precision literal
<m> := double precision literal

<PointZM> :=  <x>  <y>  <z>  <m>
<x> := double precision literal
<y> := double precision literal
<z> := double precision literal
<m> := double precision literal

从AutoCAD中导出的地形图数据,因为大部分含有Z信息,所以导成shape后,其类型都是带ZM的,有的时候,比如MapGIS软件,它不能识别带ZM的几何类型的Shapefile文件,我估计他的程序员是通过字段的值来直接判定的。那么我们怎样来去除带ZM的几何类型呢?

在地理处理-环境,设置M值和Z值参数为Disabled。(也可以在ArcGIS工具中设置,那样只能当前工具生效)

然后再用复制要素工具重新生成一个就可以了。

时间: 2024-09-30 19:16:20

ArcGIS高程Z值的去除方法的相关文章

ArcGIS之去除要素的Z值和M值

近期用python连接ArcGIS时,需要通过readshapefile函数读取shp文件,读取过程中经常出现 报错为 “ readshapefile can only handle 2D shape types ” 原因时shp文件在创建时包含了Z坐标及M坐标,如下图所示 于此,需要先将图层中的shape类型更改为平面: 方法为 打开toolbox的数据管理工具->要素->复制要素 修改环境设置,Disabled掉M值及Z值 运行完之后,得到新要素(不更改之前的要素,创建得到新图层) 原文地

arcgis 数据和服务中的z值,以及地下三维展示(附代码)

最近在进行地图符号的三维配置,在尝试三维符号时,发现无论如何都无法出现地下的效果,很郁闷,终于在好闺蜜的帮助下了解到了关于数据和服务的z值 一.什么是z值 z 值通常表示可用于以三维形式显示要素的高程或高度.要素的各折点可将 z 值与 x,y 位置信息一同存储.虽然 ArcMap 及其编辑环境是二维的,但仍可以输入.编辑和维护 z 值. 在 ArcMap 中执行编辑操作时,z 值的分配由编辑工具或命令所执行的常规功能决定:是创建新要素还是编辑现有要素.所创建的.用于生成新要素的大多数操作都会为所

PHP去掉数组重复值二种方法实例

PHP两种去掉数组重复值的方法,分别使用foreach方法和array_unique方法. 去除一个数组中的重复值,可以使用foreach方法,也可以使用array_unique方法. <?php $arrF = array(); $arrS = array(); $intTotal = 100; $intRand = 10; for($i=0; $i < $intTotal; $i++) { $arrF[] = rand(1, $intRand); $arrS[] = rand(1, $in

已知空间三点组成的面求该面上某点的Z值

已知空间三点,那么可以就可以确定空间三点组成的平面.此时可以根据某一点的X值和Y值,来求取该点在平面上的Z值.这个过程对于求三角面片上某点的高程或者权值特别有用,其本身也可以看作一种线性插值. 其算法思路也特别简单,首先算出其三点组成的平面法向量(可参看<已知三点求平面法向量>);然后根据平面法向量\(n=(A,B,C)\)和平面上某点\(m=(x0,y0,z0)\),有平面的点法式方程: \[ A(X-x0)+B(Y-y0)+C(Z-z0)=0 \] 最后根据欲求点的X.Y值,代入公式解算Z

获取元素CSS值之getComputedStyle方法熟悉

一.碎碎念~前言 我们都用过jQuery的CSS()方法,其底层运作就应用了getComputedStyle以及getPropertyValue方法. 对于那些只想混口饭吃的人来讲,晓得CSS()如何使用就足够了.对于希望在JS道路上越走越远的来人说,简单了解一些JS库底层实现对自己的学习很有帮助.可能谈不上信手拈来的使用,至少对创造一些创意新颖的新技术拓宽了思路. jQuery为何受欢迎,其中原因之一就是方法名称比较短.好比打架一样,块头大的潜意识认为厉害,就不由得心生畏惧,退避三舍:小个子(

表达式求值(二叉树方法/C++语言描述)(二)

表达式二叉树节点的数据可能是运算数或运算符,可以使用一个联合体进行存储:同时还需要一个变量来指示存储的是运算数还是运算符,可以采用和栈方法中一样的枚举类型TokenType: 1 typedef enum 2 { 3 BEGIN, 4 NUMBER, 5 OPERATOR, 6 LEFT_BRAC, 7 RIGHT_BRAC 8 } TokenType; 9 10 class Token 11 { 12 public: 13 TokenType _type; 14 union 15 { 16 c

织梦dede模板中广告的去除方法?

织梦)dede模板中广告的去除方法1.我们先删除头部的广告,找到templetsdefault下的head.htm文件,打开后找到<div>{dede:myad name=’innerTopBanner1′/}</div><div>{dede:myad name=’innerTopBanner2′/}</div>删除保存,在返回找到index.htm文件下同样的代码删除保存即可,这样在主页和内容也头部的广告都被删除了dede模板中广告的去除方法 2.下面再删

带有参数和返回值的对象方法

# 按要求设计一个计算器类 # 属性: 无. 功能: 1) 返回派的值. 2) 计算一个整数的平方. 3) 计算两个整数的和. // 按要求设计计算器类 // 类的声明 #import <Foundation/Foundation.h> @interface Calculator : NSObject // 没有属性不用写大括号{} - (double) pi; - (int) square:(int)num; // 关于方法名的说明见下面 - (int) sumOfNum1:(int)num

将深度缓冲z值变换到相机坐标系

将Depth Buffer中的Z值转换到Camera坐标系下需要使用投影矩阵 OpenGL: OpenGL的投影矩阵为 设Camera坐标系下点为(Vx,Vy,Vz,1.0) 通过上述投影矩阵变换后的点为(Px,Py,Pz,-Vz) Px与Py我们不关心,Pz=Az+B,A=-(f+n)/(f-n),B=-2fn/(f-n), 然后各项除以w,Pz=-A-B/Vz 现在Pz在[-1,1]之间,OpenGL会将其变换到[0,1]内得到Dz 以上就是Camera坐标系到投影坐标系的过程 当得到Dep